Hoppa till huvudinnehåll

Transformers


Transformers kan användas för att ändra värdena (department, shelf, location, sublocation) i den inkommande bibliotekskatalogförfrågan, eller lägga till ett mappningsmeddelande för att ge användaren mer vägledning. De kan ha villkor som liknar Katalogmappningar och som måste uppfyllas för att åtgärderna ska köras.

Flödesschema

Transformers körs innan någon mappningslogik exekveras. transformers-flow-en.png

Transformer-editor

transformers-editor.png

  • A: Går att öppna via fliken under Mapping editors
  • B: Ändra ordning på transformers. Obs att de körs i ordning, så en tidigare transformer kan påverka nästa
  • C: Lista över transformers
  • D: Aktivera eller inaktivera transformern
  • E: Testkör transformers mot specifika förfrågningsvärden
  • F: Villkor som måste uppfyllas för att åtgärderna ska köras
  • G: Åtgärder som körs om villkoren uppfylls. Obs att åtgärderna körs i ordning, så en tidigare åtgärd kan påverka nästa.

Vanliga användningsfall

Normalisera varianter

Scenario: Biblioteket har liknande department-värden som ska hanteras på samma sätt, till exempel adult, adult01 och adult_01

  • Utan transformers: varje mappning måste matcha alla tre värden.
  • Med transformers: transformern kontrollerar om värdet är något av de tre och ändrar det i så fall till adult (eller något annat). Värdet adult kan sedan användas i mappningar utan att du behöver tänka på de andra varianterna.

condition-normalize-values.png

  • A: Villkoret kontrollerar tre värden
  • B: Regeltypen är Replace
  • C: Original value lämnas tomt, vilket betyder att hela värdet ersätts med replacement
  • D: Ersätter värdet i Department med adult

Ändra ett fält genom att jämföra med ett annat

Scenario: När shelf börjar med, innehåller eller slutar med ett visst värde, till exempel Oversize, då ska

  1. department sättas till CUSTOM OVERSIZE, och
  2. Oversize tas bort från shelf-signumet.

condition-replace-multiple-fields.png

  • A: Shelf-villkoret kontrollerar alla värden som börjar med Oversize (wildcard matchar allt som kommer efter)
  • B: Första åtgärden - eftersom Original value är tomt ersätts hela Department-värdet med CUSTOM OVERSIZE
  • C: Andra åtgärden - eftersom Replacement value är tomt tas texten Oversize bort från shelf, till exempel blir Oversize18.24 till 18.24

Byt plats på två fält

Scenario: När länkar genereras i bibliotekssystemet fylls department-värdet i som location och tvärtom. Att ändra hur dessa länkar genereras kan ta tid, så i stället kan en swap-transformer användas.

condition-swap-values.png

  • A: Åtgärden byter Department-värdet mot Location

Extrahera och använd en del av värdet

Scenario: Shelf-signumet HN5001.2423 Poetry ska bara använda delen före decimalpunkten, till exempel HN5001. En set by regex-transformer kan då användas med följande mönster ^[A-Za-z0-9]+

condition-set-by-regex.png

  • A: Åtgärden sätter Shelf-värdet till resultatet av regex-mönstret.

Reguljära uttryck är avancerade. Ofta är det enklast att söka på webben eller fråga en AI/GPT om hjälp att ta fram dem utifrån ett visst input- och output-exempel.

Visa ett formaterat meddelande som innehåller några av värdena

Scenario: Användaren ska få en textbeskrivning för att hitta boken, till exempel Look for shelf HB6708 in adult department. En set mapping message-transformer kan användas med platshållare som använder förfrågningsvärdena.

transformer-mapping-message-template.png

  • A: Inga villkor, vilket ger samma meddelande för alla förfrågningar. Om du behöver olika meddelanden för olika klassifikationer kan villkor användas.
  • B: Åtgärdstyp Set mapping message
  • C: Översättningar för meddelandemallen
  • D: Meddelandemallen med tillåtna platshållare: {{department}}, {{location}}, {{shelf}}, {{sublocation}}

Resultat

mapping-message-example.png

  • A: Titel, sätts via parametern text i URL:en
  • B: Meddelanderesultat, sätts via transformer-åtgärden Mapping message template
  • C: Text, från mappningens Displayed text

Villkor

Villkor kan läggas till för att åtgärderna bara ska köras om ett eller flera villkor uppfylls. Om inga villkor läggs till körs åtgärderna alltid.

transformer-conditions.png

  • A: Ändra ordning på villkor, används för att skapa kedjor av villkorsgrupper
  • B: Om det klickade villkoret ska kedjas ihop med nästa (se förklaring nedan)
  • C: Värdet som villkoret riktar sig mot
  • D: Regeltyp
  • E: Visade fält ändras beroende på vald regeltyp
  • F: Fler val, som skiftlägeskänslighet, kloning och test

Verifiera och testa

Se Testa enskilda villkor

Kedjning

Villkor kan kedjas ihop för att skapa grupper, till exempel:

  • A) om department är 'aaa' och B) location är 'bbb'
  • C) om shelf är xxx

I detta fall godkänns båda följande förfrågningar:

  • department = aaa, location = bbb, shelf = ccc, sublocation = ddd
  • department = 111, location = 222, shelf = xxx, sublocation = mmm

eftersom A+B kontrolleras tillsammans och C kontrolleras separat.

condition-chaining.png

  • A: De två första villkoren är kedjade ihop
  • B: Det tredje villkoret kontrolleras separat

Typ - Department, Location, Shelf och Sublocation

Regler i villkor fungerar på samma sätt som mappningsregler i Katalogmappningar. De riktar sig mot ett värde (department, location, shelf eller sublocation) och kan antingen ha typen Text eller en klassifikation som SAB, Dewey eller Library of Congress.

Typ - Always enabled

Samma sak som att inte ha några villkor - åtgärderna i denna transformer körs alltid

Åtgärder

Transformers kan ha flera åtgärder. De körs bara om villkoren uppfylls. Åtgärder körs i ordning, så en tidigare åtgärd kan påverka nästa.

Typer

  • Replace - ersätter Original value med Replacement value. Om Original value lämnas tomt ersätts hela fältet med Replacement value.

    • Ersätter varje förekomst av abc med xyz i Department. Till exempel skulle värdet 11abc22 bli 11xyz22:

    action-replace-original-value.png

    • Original value är tomt, ersätt hela värdet med mno, till exempel skulle värdet 11abc22 bli mno:

    action-replace-entire.png

  • Remove - tar bort hela värdet från valt fält, till exempel att ta bort location-värdet.

  • Swap - byter plats på ett fält med ett annat, till exempel department <-> location.

  • Change casing - ändrar värdet till antingen UPPERCASE eller lowercase

  • Set mapping message - sätter ett meddelande via en mall med platshållare som visas för användaren, till exempel Book is at shelf {{shelf}} in department {{department}}

  • Set by regex - sätter värdet i ett fält till resultatet av en regex-match

Testning

Testa alla transformers

Transformers kan testas mot specifika förfrågningsvärden för att verifiera att de fungerar korrekt.

Öppna testverktyget för transformers open-test-run-transformers.png

Testverktyget för transformers test-run-transformers.png

  • A: Förfrågningsvärdena att testa med
  • B: Förfrågningsvärdena efter att transformers har körts. Om fältet har ändrats visas en ikon till vänster om etiketten
  • C: Listan över ändringar för felsökning

Testa enskilda villkor

Öppna testverktyget för villkoret: test-transformer-condition.png

Testar villkoret mot specifika värden för att se om det godkänns eller inte: single-rule-tester.png