Transformers
Transformers können verwendet werden, um die Werte (department, shelf, location, sublocation) einer eingehenden Anfrage aus dem Bibliothekskatalog zu ändern oder eine Mapping-Nachricht hinzuzufügen, die den Nutzer weiter anleitet. Sie können Bedingungen haben, ähnlich wie Katalog-Mappings, die erfüllt sein müssen, damit die Aktionen ausgeführt werden.
Ablaufdiagramm
Transformers werden vor jeder Mapping-Logik angewendet.

Transformer-Editor

- A: Über den Tab unter Mapping editors erreichbar
- B: Reihenfolge der Transformers ändern. Hinweis: Sie laufen in Reihenfolge, daher kann ein vorheriger Transformer den nächsten beeinflussen
- C: Liste der Transformers
- D: Transformer aktivieren oder deaktivieren
- E: Transformers gegen bestimmte Anfragewerte testen
- F: Bedingungen, die erfüllt sein müssen, damit die Aktionen ausgeführt werden
- G: Aktionen, die angewendet werden, wenn die Bedingungen erfüllt sind. Hinweis: Auch die Aktionen werden in Reihenfolge ausgeführt, sodass eine frühere Aktion die nächste beeinflussen kann.
Häufige Anwendungsfälle
Varianten normalisieren
Szenario: Die Bibliothek hat ähnliche Department-Werte, die gleich behandelt werden sollen, zum Beispiel adult, adult01 und adult_01
- Ohne Transformers: Jedes Mapping muss alle drei Werte matchen.
- Mit Transformers: Der Transformer prüft, ob der Wert einer der drei ist, und ändert ihn dann in adult (oder einen anderen Wert). Der Wert adult kann danach in Mappings verwendet werden, ohne sich um die anderen Varianten kümmern zu müssen.

- A: Bedingung prüft drei Werte
- B: Der Regeltyp ist
Replace - C:
Original valuebleibt leer, das heißt, der gesamte Wert wird durch replacement ersetzt - D: Ersetzt den Wert in Department durch
adult
Ein Feld durch Vergleich mit einem anderen ändern
Szenario: Wenn shelf mit einem bestimmten Wert beginnt, ihn enthält oder auf ihn endet, zum Beispiel Oversize, dann soll
- department auf CUSTOM OVERSIZE gesetzt werden, und
- Oversize aus der Shelf-Signatur entfernt werden.

- A: Die Shelf-Bedingung prüft alle Werte, die mit
Oversizebeginnen (Wildcard matcht alles, was danach kommt) - B: Erste Aktion - da
Original valueleer ist, wird der gesamte Department-Wert durchCUSTOM OVERSIZEersetzt - C: Zweite Aktion - da
Replacement valueleer ist, wird der TextOversizeaus shelf entfernt, also wird zum Beispiel Oversize18.24 zu 18.24
Zwei Felder vertauschen
Szenario: Beim Generieren der Links im Bibliothekssystem wird der department-Wert als location gesetzt und umgekehrt. Das Anpassen dieser Link-Generierung kann Zeit brauchen, deshalb kann stattdessen ein swap-Transformer verwendet werden.

- A: Die Aktion vertauscht Department mit Location
Einen Teil des Werts extrahieren und verwenden
Szenario: Die Shelf-Signatur HN5001.2423 Poetry soll nur den Teil vor dem Dezimalpunkt verwenden, also zum Beispiel HN5001.
Dafür kann ein set by regex-Transformer mit dem folgenden Muster verwendet werden: ^[A-Za-z0-9]+

- A: Die Aktion setzt den Shelf-Wert auf das Ergebnis des Regex-Musters.
Reguläre Ausdrücke sind fortgeschritten. Oft ist es am einfachsten, im Web danach zu suchen oder eine AI/GPT zu bitten, sie anhand eines bestimmten Inputs und erwarteten Outputs zu erzeugen.
Anzeige einer formatierten Nachricht mit einigen der Werte
Szenario: Dem Nutzer soll eine Textbeschreibung angezeigt werden, um das Buch zu finden, zum Beispiel Look for shelf HB6708 in adult department.
Dafür kann ein set mapping message-Transformer mit Platzhaltern verwendet werden, die auf die Anfragewerte zugreifen.

- A: Keine Bedingungen, dadurch entsteht dieselbe Nachricht für alle Anfragen. Wenn unterschiedliche Nachrichten für verschiedene Klassifikationen benötigt werden, können Bedingungen verwendet werden.
- B: Aktionstyp
Set mapping message - C: Übersetzungen für die Nachrichtenvorlage
- D: Die Nachrichtenvorlage mit erlaubten Platzhaltern:
{{department}},{{location}},{{shelf}},{{sublocation}}
Ergebnis

- A: Titel, gesetzt über den Parameter
textin der URL - B: Nachrichtenergebnis, gesetzt über die Transformer-Aktion
Mapping message template - C: Text aus dem
Displayed textdes Mappings
Bedingungen
Bedingungen können hinzugefügt werden, damit die Aktionen nur ausgeführt werden, wenn eine oder mehrere Bedingungen erfüllt sind. Wenn keine Bedingungen hinzugefügt werden, laufen die Aktionen immer.

- A: Bedingungen umsortieren, um Ketten aus Bedingungsgruppen zu erstellen
- B: Ob die angeklickte Bedingung mit der nächsten verkettet werden soll (siehe Erklärung unten)
- C: Zielwert
- D: Regeltyp
- E: Die angezeigten Felder ändern sich je nach ausgewähltem Regeltyp
- F: Weitere Optionen wie Groß-/Kleinschreibung, Klonen und Testen
Prüfen und testen
Siehe Einzelne Bedingungen testen
Verkettung
Bedingungen können verkettet werden, um Gruppen zu erstellen, zum Beispiel:
A) wenn department 'aaa' ist und B) location 'bbb' istC) wenn shelf xxx ist
In diesem Fall bestehen beide folgenden Anfragen den Test:
- department = aaa, location = bbb, shelf = ccc, sublocation = ddd
- department = 111, location = 222, shelf = xxx, sublocation = mmm
weil A+B gemeinsam geprüft werden und C separat geprüft wird.

- A: Die ersten zwei Bedingungen sind miteinander verkettet
- B: Die dritte Bedingung wird separat geprüft
Typ - Department, Location, Shelf und Sublocation
Regeln in Bedingungen funktionieren genauso wie Mapping-Regeln in Katalog-Mappings. Sie zielen auf einen Wert (department, location, shelf oder sublocation) und können entweder vom Typ Text sein oder eine Klassifikation wie SAB, Dewey oder Library of Congress.
Typ - Always enabled
Dasselbe, als gäbe es keine Bedingungen - die Aktionen in diesem Transformer werden immer ausgeführt
Aktionen
Transformers können mehrere Aktionen haben. Sie werden nur ausgeführt, wenn die Bedingungen erfüllt sind. Aktionen laufen in Reihenfolge, daher kann eine frühere Aktion die nächste beeinflussen.
Typen
-
Replace - ersetzt
Original valuedurchReplacement value. WennOriginal valueleer bleibt, wird das gesamte Feld durchReplacement valueersetzt.- Ersetzt jedes Vorkommen von
abcdurchxyzinnerhalb von Department. Der Wert11abc22würde zum Beispiel zu11xyz22werden:

- Original value ist leer, ersetze den gesamten Wert durch
mno, also würde der Wert11abc22zumnowerden:

- Ersetzt jedes Vorkommen von
-
Remove - entfernt den gesamten Wert aus dem gewählten Feld, zum Beispiel den location-Wert.
-
Swap - tauscht ein Feld mit einem anderen, zum Beispiel department
<->location. -
Change casing - ändert den Wert zu
UPPERCASEoderlowercase -
Set mapping message - setzt eine Nachricht über eine Vorlage mit Platzhaltern, die dem Nutzer angezeigt wird, zum Beispiel
Book is at shelf {{shelf}} in department {{department}} -
Set by regex - setzt den Wert eines Feldes auf das Ergebnis eines Regex-Matches
Testen
Alle Transformers testen
Transformers können gegen bestimmte Anfragewerte getestet werden, um zu prüfen, ob sie korrekt funktionieren.
Den Transformer-Tester öffnen

Transformer-Tester

- A: Die Anfragewerte, mit denen getestet wird
- B: Die Anfragewerte nachdem die Transformers angewendet wurden. Wenn ein Feld geändert wurde, erscheint links neben der Bezeichnung ein Icon
- C: Liste der Änderungen für Debugging-Zwecke
Einzelne Bedingungen testen
Den Bedingungs-Tester öffnen:

Testet die Bedingung gegen bestimmte Werte, um zu sehen, ob sie erfolgreich ist oder fehlschlägt:
