Wertauflöser - Kurzfassung
Zweck: Erzeugt ein Datenobjekt vom Typ "Liste" (java.util.List) und gibt dieses - optional vorbelegt mit den über Wertauflöser definierten Einträgen - zurück.
Tooltip
Verwendung: Der Wertauflöser gibt immer ein Datenobjekt vom Typ "Liste" (java.util.List) zurück, der optional Einträge zugeordnet werden können. Werden keine Einträge vordefiniert, ist diese Liste leer ([]).
Parameter:
Optional kann der erzeugten Liste über ein Wiederholendes Element eine beliebige Anzahl an Einträgen zugeordnet werden. Per Standard wird dabei "kein Wert" ($null) als Listenwert zugewiesen.
Optional kann jedem Listeneintrag ein Wert zugewiesen werden, der zur Laufzeit per Wertauflöser ermittelt wird.
Hinweis: Zum Erzeugen eines List-Objekt ohne Einträge kann alternativ der Erzeuge Instanz-Wertauflöser (mit der Klasse "Liste"/java.util.List) verwendet werden.
Der Erzeuge Liste-Wertauflöser erzeugt ein Datenobjekt vom Typ "Liste" (java.util.List) und gibt dieses zurück.
Der Liste können optional Werte ($null, simple Werte oder Datenobjekte) als Einträge zugewiesen werden.
Der Eingabewert wird nicht unmittelbar verarbeitet, aber an die Wertauflöser für Listeneinträge als Eingabewert weitergegeben.
►HINWEIS◄ Zum Erzeugen eines List-Objekt ohne Einträge kann auch der Erzeuge Instanz-Wertauflöser (mit der Klasse "Liste"/java.util.List) verwendet werden.
Konfiguration
Für die optionale Zuweisung von Einträgen für die erzeugte Liste können der Konfiguration per Klick auf das
-Symbol Instanzen hinzugefügt und darin Wertauflöser definiert werden Bestehende Einträge entfernt ein Klick auf das
-Symbol.
|
Ergibt (in JSON-Notation):
|
Per Standard wird jedem Eintrag "Kein Wert" ($null) zugewiesen. Dies erzeugt allerdings sehr wohl einen Listeneintrag, der aber den Wert $null enthält:
|
Ergibt (in JSON-Notation):
|
►HINWEIS◄ Beim Klick auf das
zum Hinzufügen des ersten Elements wird in der Benutzeroberfläche für die Konfiguration die schreibgeschützte "Schablone" für Einträge (mit grauem Rand) durch einen aktiven Eintrag (mit blauem Rand) ersetzt.
Beispiele
Zuweisung an ein Objekt-Feld, das eine Liste erwartet
Über eine Ereignisbehandlung sollen die einem bestimmten Benutzerkonto zugeordneten "Firmen" (für die Auswahl der Firma der Session beim Login), automatisch zugewiesen werden. Die Liste soll dabei auf genau zwei in der Konfiguration statisch vordefinierte Firmenkonten verweisen.
Konfiguration:
Das betreffende Benutzerkonto ist in der Konfiguration rechts durch eine Ausführen mit-Ereignisaktion (nicht im Bild) als Bezugsobjekt definiert. Die Zuweisung erledigt eine Setze Wert-Ereignisaktion:
Der Objekt-Feld-Wertauflöser (links) definiert das Zielfeld "Firmen" companies) für die Zuweisung.
►HINWEIS◄ Wie der Hinweis auf den Datentyp unterhalb der Feldauswahl im Wertauflöser nahelegt, erwartet das Feld eine Liste von Long-Werten, also in unserem Kontext die IDs (id) der betreffenden Firmenkonten und nicht etwa das komplette Firmenkonto als Entität.
Rechts erzeugt der Erzeuge Liste-Wertauflöser eine mit den IDs von zwei Firmenkonten, die jeweils durch den Firmenwert-Wertauflöser definiert werden, aus dessen Rückgabewert jeweils über den verketteten Objekt-Feld-Wertauflöser die "ID "(id) des Kontos aufgelöst wird.
►ANMERKUNG◄ Nachdem die ID-Werte der beiden Firmen vordefiniert sind, könnte man dasselbe Ergebnis auch erzielen, indem man die IDs als statische Long-Werte im Erzeuge Liste-Wertauflöser festlegt. Allerdings sollte dies mit Rücksicht auf den Austausch von Konfigurationen per Meta Exchange (z. B. zwischen Test-/Produktivsystem) vermieden werden, da dieser nur per Firmenwert-Wertauflöser identifizierte Firmenkonten automatisch "wiedererkennt".
|
|
Statisch definierte Werte für einen In Liste-Vergleich bereitstellen
Ein Zuordnungskriterium soll beurteilen, ob das Adressfeld "Postleitzahl" (zipcode) die Firma der Session in einer von mehreren "handverlesenen" Regionen in einem bestimmten Land verortet.
Konfiguration:
Innerhalb einer Mit-Regel (im Bild nicht komplett zu sehen) wird als Bezugsobjekt auf die Firmenadresse im Feld "Adresse" (address) des Firmenkontos verwiesen, das der Firma der Session-Wertauflöser zurückgibt. Im Kontext dieser Adresse werden zwei UND-verknüpfte Instanzen der Objekt-Feld-Regel konfiguriert:
Die erste Objekt-Feld-Regel stellt sicher, dass sich die Firma der Session im gesuchten Land (hier: Deutschland) befindet.
Die zweite Objekt-Feld-Regel soll anhand der Postleitzahl prüfen, ob die Firma sich in einem der gesuchten Postleitzahl-Gebiete befindet:
Links liest der Objekt-Feld-Wertauflöser die Postleitzahl aus dem Feld "Postleitzahl" (zipcode) der Adresse. Per Verkettung extrahiert der Teilstring-Wertauflöser unterhalb die ersten zwei Ziffern aus er Postleitzahl, da nur diese für die Prüfung ausschlaggebend sein sollen.
Wenn als Vergleichstypen (Matcher) der Typ In Liste ausgewählt wird, erscheint auf der rechten Seite automatisch der Erzeuge Liste-Wertauflöser als Vorschlag. Hier kann die "Positivliste" mit den zweistelligen Ziffernkombinationen für relevante Regionen unmittelbar eingepflegt werden. Für jede Region muss per Klick auf das
-Symbol ein Eintrag angelegt werden. Danach können die führenden Ziffern der PLZ als statischer Text (s. Statische Werte) als Wert konfiguriert werden.
►ANMERKUNG◄ Anstelle des Erzeuge Liste-Wertauflösers (rechts) könnte die Liste hier auch recht bequem als statischer Text in JSON-Notation (s. u.) definiert und per Verkettung an einen Objekt aus JSON erzeugen-Wertauflöser übergeben werden:
|
|
Listenwerte für eine Iteration per Für jeden Eintrag wiederholen (Schleife) bereitstellen
Über eine Für jeden Eintrag wiederholen (Schleife) sollen automatische Informationen an Stakeholder aus dem Kontext einer Entität benachrichtigt werden, sobald diese gelöscht wird.
Konkret sollen folgende Stakeholder über das Löschen der Entität informiert werden:
Der Ersteller der Entität, also der im Feld "Erstellt von" (creatorId) referenzierte Benutzer.
Sofern abweichend vom Ersteller: Der Benutzer, der die Entität laut Feld "Zuletzt geändert von" (lastModifierId) zuletzt geändert hat.
Der Besitzer der Entität, also die im Feld "Besitzer" (ownerId)referenzierte Firma.
Es wird angenommen, dass die Adresse (address) der betreffenden Konten (Benutzer/Firmen) eine E-Mail-Adresse für die Benachrichtigung enthält.
Konfiguration:
Innerhalb einer Ereignisbehandlung, die auf das Ereignis "Löschen" (s. Allgemein (Ereignisse)) reagiert, wird der Aktionsteil wie folgt konfiguriert:
Ein Für jeden Eintrag wiederholen (Schleife) iteriert über eine Liste von Adressen und löst für jede in der Liste enthaltene Adresse (als Eingabewert) ein Eigenes Aktionsevent "Xf Mail Job" (XF_MAIL_JOB) aus.
►HINWEIS◄ Informationen zur gelöschten Entität werden diesem Ereignis über die Variable deletedEntity bereitgestellt, die im Kopf der Schleife mit dem Eingabewert der hier gezeigten Ereignisbehandlung (also der gelöschten Entität) gefüllt wird.
Im Wertauflöser für Einträge kommt der Erzeuge Liste-Wertauflöser zum Einsatz, der hier eine Liste mit genau drei Einträgen erzeugen soll:
Für den ersten Eintrag wird das Feld creatorId der Entität gelesen und über den Eingabeobjekt (Typsicher)-Wertauflöser das betreffende Benutzerkonto beschafft.
Der zweite Eintrag greift über den Original-Objekt-Wertauflöser (s. Anmerkung unten) auf den serverseitigen Stand der zu löschenden Entität zu, liest deren lastModifierId-Feld und beschafft dann über den Eingabeobjekt (Typsicher)-Wertauflöser das betreffende Benutzerkonto.
Der dritte Eintrag liest das Feld ownerId der zu löschenden Entität und beschafft über den Eingabeobjekt (Typsicher)-Wertauflöser das betreffende Firmenkonto.
Der mit dem Erzeuge Liste-Wertauflöser verkettete Sammle Werte-Wertauflöser extrahiert aus allen Listeneinträgen das Feld address und verwendet dabei (nicht im Bild zu sehen) die Option "Eindeutige Werte", sodass für dasselbe "Adresse"-Objekt nicht mehrfach eine Benachrichtigung ausgelöst wird.
|
|
►ANMERKUNG◄ Der Original-Objekt-Wertauflöser ist wichtig, da der für das Löschen der Entität verantwortliche Benutzer im Kontext des "Löschen"-Ereignisses bereits per lastModifierId referenziert wird. Informiert werden soll aber der Benutzer, der für die Entität zuletzt per "Speichern" zum Server geschickt hat.