Zum Hauptinhalt springen

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. transformers-flow-en.png

Transformer-Editor

transformers-editor.png

  • 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.

condition-normalize-values.png

  • A: Bedingung prüft drei Werte
  • B: Der Regeltyp ist Replace
  • C: Original value bleibt 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

  1. department auf CUSTOM OVERSIZE gesetzt werden, und
  2. Oversize aus der Shelf-Signatur entfernt werden.

condition-replace-multiple-fields.png

  • A: Die Shelf-Bedingung prüft alle Werte, die mit Oversize beginnen (Wildcard matcht alles, was danach kommt)
  • B: Erste Aktion - da Original value leer ist, wird der gesamte Department-Wert durch CUSTOM OVERSIZE ersetzt
  • C: Zweite Aktion - da Replacement value leer ist, wird der Text Oversize aus 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.

condition-swap-values.png

  • 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]+

condition-set-by-regex.png

  • 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.

transformer-mapping-message-template.png

  • 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

mapping-message-example.png

  • A: Titel, gesetzt über den Parameter text in der URL
  • B: Nachrichtenergebnis, gesetzt über die Transformer-Aktion Mapping message template
  • C: Text aus dem Displayed text des 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.

transformer-conditions.png

  • 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' ist
  • C) 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.

condition-chaining.png

  • 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 value durch Replacement value. Wenn Original value leer bleibt, wird das gesamte Feld durch Replacement value ersetzt.

    • Ersetzt jedes Vorkommen von abc durch xyz innerhalb von Department. Der Wert 11abc22 würde zum Beispiel zu 11xyz22 werden:

    action-replace-original-value.png

    • Original value ist leer, ersetze den gesamten Wert durch mno, also würde der Wert 11abc22 zu mno werden:

    action-replace-entire.png

  • 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 UPPERCASE oder lowercase

  • 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 open-test-run-transformers.png

Transformer-Tester test-run-transformers.png

  • 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: test-transformer-condition.png

Testet die Bedingung gegen bestimmte Werte, um zu sehen, ob sie erfolgreich ist oder fehlschlägt: single-rule-tester.png