Verketteter Wertauflöser

Während alle anderen Wertauflöser typischerweise durch interaktive Auswahl in einem Kontextmenü einer Wert-Konfiguration hinzugefügt werden, wird ein Verketteter Wertauflöser ausschließlich indirekt zum Bestandteil einer Konfiguration.

Ein Verketteter Wertauflöser wird automatisch erzeugt, wenn eine Wert-Konfiguration, für die bereits genau ein Wertauflöser ausgewählt ist (z. B. ein Objekt-Feld-Wertauflöser, s. Bild rechts oben), durch das Hinzufügen eines zweiten Wertauflösers zu einer Wertauflöserkette (s. rechts unten) erweitert wird.

Sobald der Mauszeiger in den Bereich einer bestehenden Wert-Konfiguration bewegt wird, erscheinen am oberen und unteren Rand der bereits hinzugefügten Wertauflöser images/s/-95e2zf/9012/8yg2g7/_/images/icons/emoticons/add.svg -Symbole (im Bild grau). Ein Klick auf eines dieser Symbole öffnet ein Kontextmenü, das die Auswahl eines Wertauflöser-Typs ermöglicht, der an der betreffenden Position hinzugefügt werden soll.

Ausgangssituation: Einzelner Wertauflöser

images/download/attachments/177910244/image2023-1-5_7-51-1-version-1-modificationdate-1725886480532-api-v2.png

Hinzufügen eines weiteren Wertauflösers über das
images/s/-95e2zf/9012/8yg2g7/_/images/icons/emoticons/add.svg -Symbol (unten oder oben) ergibt eine Wertauflöserkette:

images/download/attachments/177910244/image2023-1-5_7-56-43-version-1-modificationdate-1725886480529-api-v2.png

Die XML-Definition für die Ausgangssituation (s. Bild rechts oben) enthält genau ein Element, nämlich den Objekt-Feld-Wertauflöser (PropertyResolver).

<core:PropertyResolver xmlns:core="CORESYSTEM"/>

Die XML-Definition für die Wertauflöserkette (s. Bild rechts unten) aus zwei Wertauflösern enthält drei Elemente, da ein automatisch erzeugter Verketteter Wertauflöser die beiden Objekt-Feld-Wertauflöser zusammenfasst.

<core:ChainedResolver xmlns:core="CORESYSTEM">
<core:PropertyResolver/>
<core:PropertyResolver/>
</core:ChainedResolver>

HINWEISE

  • Falls nach dem Entfernen von Wertauflösern aus einer Wertauflöserkette nur noch ein einzelner Wertauflöser vorhanden ist, wird kein Verketteter Wertauflöser mehr benötigt. Er verschwindet dann automatisch.

  • Ein Verketteter Wertauflöser kann nicht innerhalb einer Wertauflöserkette hinzugefügt werden, um eine Teilmenge von Wertauflösern von den übrigen abzugrenzen.

Verarbeitungslogik

Wie der Pfeil in den Screenshots andeutet, wird ein im Kontext anwendbarer Eingabewert typischerweise an die ggf. verkettete Wert-Konfiguration "von oben" übergeben.

Im Kontext einer Wertauflöserkette wird der Rückgabewert eines verarbeiteten Wertauflösers einem ggf. direkt verketteten Nachfolger als Eingabewert zur Verfügung gestellt.

Existiert kein Nachfolger, dann definiert der Rückgabewert des letzten Wertauflösers der Kette das "Endergebnis" für die gesamte Wert-Konfiguration.

Beispiel:

Eine Regel soll im Kontext eines Firmenkontos (s. Firmen) prüfen, ob die in der Firmenadresse angegebene Postleitzahl über weniger als 5 Zeichen verfügt. Im Beispiel rechts wird dazu mit der Typprüfung auf den Typ "Firmenkonto" eine Objekt-Feld-Regel UND-verknüpft.

Wert-Konfiguration für die linke Seite der Objekt-Feld-Regel ist wie dargestellt als Wertauflöserkette aus drei Objekt-Feld-Wertauflösern konfiguriert:

  • Der erste Objekt-Feld-Wertauflöser greift auf den Wert des address-Felds des zu prüfenden Firmentkontos zu.

  • Der zweite verkettete Objekt-Feld-Wertauflöser erhält - sofern vorhanden - die Firmenadresse als Eingabewert und liest deren Feld "Postleitzahl" (zipcode).

  • Der dritte verkettete Objekt-Feld-Wertauflöser liefert schließlich die Länge (length) der als Eingabewert übergebenen Zeichenfolge, auf die für jeden Textwert (String) als Feld zugegriffen werden kann.

ANMERKUNG◄ Anstelle einer Verkettung von Objekt-Feld-Wertauflösern kann in vielen Fällen auch durch einen einzigen Objekt-Feld-Wertauflöser ersetzt werden, in dem die Feldname via Punkt (.) verkettet werden. Im Beispiel funktioniert das so:

images/download/attachments/177910244/image2023-1-5_9-7-26-version-1-modificationdate-1725886480522-api-v2.png

images/download/attachments/177910244/image-2024-9-9_14-54-51-version-1-modificationdate-1725886491559-api-v2.png

►WICHTIG◄ Eine Wertauflöserkette wird NICHT IMMER von oben nach unten abgearbeitet!


Die grafische Darstellung und die allgemeinen Anordnungsprinzipien für Konfigurationen in Lobster Data Platform / Orchestration legen nahe, dass eine Wertauflöserkette ausgehend vom Eingabewert schrittweise von oben nach unten abgearbeitet wird.

In vielen Anwendungsfällen (s. Beispiel oben) wird diese intuitive Annahme durch die mit konkreten Wert-Konfigurationen erzielten Ergebnisse auch perfekt bestätigt.

Allerdings wird eine Wertauflöserkette tatsächlich rückwärts (in der Grafik "von unten nach oben") abgearbeitet und zwar nur soweit wie nötig.

Enthält die Wertauflöserkette einen Wertauflöser eines Typs, für den der Eingabewert keine Rolle spielt (Statische Werte, Variable, Sitzungsbasiert (Wertauflöser), ...), werden alle Vorgänger (oberhalb in der Kette) nicht abgearbeitet.

Konkretes Beispiel:

In Anlehnung an das obige Beispiel wurden in der bestehenden Wertauflöserkette zwei Wertauflöser ergänzt:

  • An Position 2 der Kette soll die komplette Firmenadresse (address) durch einen Wert als Variable speichern-Wertauflöser in die Variable companyAddress übergeben werden.

  • An Position 4 der Kette wurde ein statischer Text eingefügt, um das Vorliegen einer vierstelligen Postleitzahl (8800) beim Ausführen von Tests zu simulieren.

Ergebnis:

Nur die letzten zwei Wertauflöser in der Kette werden überhaupt abgearbeitet, da der statische Text an Position 4 weitere "Ermittlungen" (oberhalb) überflüssig macht.

Die Variable companyAddress wird also nicht gefüllt, bis der statische Test-Textwert (8800) wieder entfernt wird.

images/download/attachments/177910244/image-2024-9-9_16-7-27-version-1-modificationdate-1725890847559-api-v2.png