Bedingter Wert
Wertauflöser - Kurzfassung
Zweck: Ermittelt den Rückgabewert anhand einer Fallunterscheidung, die analog zur Wenn Dann Sonst-Ereignisaktion mit einer beliebigen Anzahl von Zweigen aufgebaut werden kann.
Siehe auch: Wenn Dann Sonst (Ereignisaktion)
Der Bedingter Wert-Wertauflöser ermittelt den Rückgabewert anhand einer Fallunterscheidung, die analog zur Wenn Dann Sonst-Ereignisaktion mit einer beliebigen Anzahl von Zweigen aufgebaut werden kann.
Im Unterschied zur einer Fallunterscheidung per Wenn Dann Sonst-Ereignisaktion, die nur im Kontext von Ereignisbehandlungen verfügbar ist, kann der Bedingter Wert in sämtlichen Kontexten eingesetzt werden, die Wert-Konfigurationen verwenden. Unter anderem ermöglicht der Bedingter Wert damit auch eine Fallunterscheidung innerhalb einer Verkettung von Wertauflösern, was in allen Kontexten (Ereignisbehandlungen, Zuordnungskriterien, Such API, usw.) kompaktere und transparentere Konfigurationen ermöglichen kann.
Beispiel:
Jeder Zweig der Fallunterscheidung verknüpft eine Regel-Konfiguration (s. Rauten-Symbole oben) mit einer Wert-Konfiguration (s. Trapez-Symbole unten). Beide Konfigurationen sind optional:
Wird auf die Regel-Konfiguration verzichtet, dann gilt die Bedingung für den Zweig per Standard als bestanden.
Wird auf die Wert-Konfiguration verzichtet, dann gilt für den Zweig "Kein Wert" ($null)
Der Eingabewert für den Wertauflöser wird solange schrittweise von links nach rechts an die Zweige der Fallunterscheidung übergeben, bis entweder die für einen Zweig konfigurierte Bedingung zutrifft oder ein Zweig erreicht wird, für den keine Regel-Konfiguration existiert (s. Symbol
rechts im Bild).
Die Wert-Konfiguration für den betreffenden Zweig bestimmt den Rückgabewert des Wertauflösers.
Im obigen Beispiel wird in zwei Stufen der Typ des Eingabewerts geprüft:
Wird die Typprüfung für "String" bestanden, entfernt ein Trim-Wertauflöser randständige Leerzeichen vom Eingabewert (sofern vorhanden), um den Rückgabewert zu ermitteln.
Ist eine Typprüfung für "Long" ODER "Number" erfolgreich, wird über den Zahl formatieren-Wertauflöser aus dem Zahlenwert im Eingabewert ein "String" für den Rückgabewert erstellt.
Trifft keiner der geprüften Typen zu, wird der statische Text VOID als Rückgabewert gesetzt.
Konfiguration
Unmittelbar nach dem Hinzufügen des Wertauflösers erscheint er "ohne Verzweigungen" wie eingangs abgebildet. Ein Klick auf das
Der Eingabewert (symbolisiert durch den Pfeil von oben) steht sowohl für die Regel-Konfiguration als auch für die Wert-Konfiguration zur Verfügung. ►HINWEIS◄ Falls komplett auf eine Wert-Konfiguration verzichtet wird, liefert ein Zweig ggf. "Kein Wert" ($null) und nicht etwa den Eingabewert als Rückgabewert. Der Eingabewert muss bei Bedarf aktiv "durchgeleitet" werden, etwa durch einen Objekt-Feld-Wertauflöser ohne Auswahl eines Felds oder einen Eingabeobjekt (Typsicher)-Wertauflöser mit einem geeigneten Typ. |
|
Links oben im Bereich eines Zweigs bietet das Kontextmenü-Symbol Zugriff auf nützliche Operationen zum Editieren der Konfiguration:
►HINWEIS◄ Die Reihenfolge bereits angelegter Zweige kann z. B. durch eine Kombination von Operationen Ausschneiden und Einfügen geändert werden. Allerdings ist es unter Umständen effizienter, auf die Baumansicht der umgebenden Konfiguration zurückzugreifen, wo die Reihenfolge Zweige per Drag & Drop angepasst werden kann. |
|
Beispiel
Einfacher Anwendungsfall: Bedingte Feldauswahl für einen Vergleich
Ein Zuordnungskriterium (s. Zuordnungskriterien) soll immer dann als "bestanden" gelten, wenn ein Benutzer (s. Benutzer) oder Gastbenutzer (s. Gastbenutzer) angemeldet ist, dessen Anmeldegrundlage "bedroht" ist:
Als potenzielle Bedrohung für den Benutzer soll das "Passwort-Ablaufdatum" überwacht werden.
Für den Gastbenutzer soll die begrenzte Gültigkeit des Kontos (Feld "Gültig bis") als "Bedrohung" überwacht werden.
Das Zuordnungskriterium soll in beiden Fällen greifen, wenn der entsprechende Grenztermin vor dem Ende des aktuellen Monats liegt.
Konfiguration:
Das abgebildete Zuordnungskriterium bezieht sich innerhalb einer Mit-Regel auf den Benutzer der Session als Bezugsobjekt für eine Objekt-Feld-Regel.
Innerhalb der Objekt-Feld-Regel soll das für den jeweiligen Kontotyp ausschlaggebende Datumsfeld per Vergleiche mit (Formulardesigner) mit dem Ende des aktuellen Monats abgeglichen werden, das über einen Relatives Datum mit Zeit-Wertauflöser ermittelt wird.
Das für den angemeldeten Kontotyp ausschlaggebende Datumsfeld wird hier über den Bedingter Wert zugeordnet:
Der erste Zweig stellt per Typprüfung fest, ob ein Benutzer angemeldet ist. Trifft dies zu, soll dessen Feld "Passwort Ablaufdatum" (passwordExpiryDate) per Vergleich geprüft werden.
Der zweite Zweig stellt per Typprüfung fest, ob ein Gastbenutzer angemeldet ist. Trifft dies zu, soll dessen Feld "Gültig bis" (validTo) per Vergleich geprüft werden.
►ANMERKUNG◄ Da im konkreten Fall weder das Benutzerkonto über ein validTo-Feld noch das Gastbenutzerkonto über ein passwordExpiryDate verfügt, könnte man das jeweils relevante Feld auch mit dem Standardwert-Wertauflöser "ermitteln". Der Bedingter Wert-Wertauflöser deckt den allgemeinen Fall eines wahlweisen Zugriffs allerdings wesentlich flexibler und transparenter ab, als der Standardwert, der eine alternativen Wert nur als Fallback zuweisen kann.