Wertauflöser - Kurzfassung
Zweck: Prüft, ob der Eingabewert mit dem angegebenen Typ kompatibel ist und gibt "kein Wert" (
$null) zurück, falls nicht. Der Rückgabewert im Erfolgsfall variiert abhängig von Eingabewert-Typ und Ziel-Typ.Tooltip
Verwendung: Abhängig von der Kombination aus Eingabewert-Typ und dem in der Konfiguration ausgewählten Typ erfüllt der Wertauflöser einen der folgenden Zwecke:
Typumwandlung: Definiert der Typ einen simplen Wert, wird versucht den Eingabewert in diesen Typ umzuwandeln.
Aufzählungswert nachschlagen: Definiert der Typ eine statische oder Dynamische Aufzählung und der Eingabewert einen
String, dann wird der Eingabewert als Schlüssel zum Nachschlagen eines Aufzählungswerts über dessennameverwendet.Entität nachschlagen: Definiert der Typ einen konkreten Entitätstyp und der Eingabewert einen
Long-Wert, dann wird der Eingabewert als Schlüssel zum Nachschlagen einer Entität über derenidverwendet.Typprüfung: Trifft keiner der genannten Fälle zu, wird der Eingabewert analog zur Typprüfung gegen den angegebenen Typ geprüft. im Erfolgsfall wird der Eingabewert zurückgegeben.
Schlägt die Prüfung, Typumwandlung oder das Nachschlagen fehl, wird
$nullzurückgegeben.Parameter:
Der Parameter Typ definiert die Klasse gegen die der Eingabewert geprüft wird bzw. den Ziel-Typ für eine Typumwandlung oder das Abrufen von Aufzählungswerten oder Entitäten. Ohne Auswahl lautet der Rückgabewert immer
$null.Die Option Ist Liste von definiert für eine Prüfung, dass der Eingabewert eine Liste sein muss, die keinen Eintrag enthält, der nicht dem ausgewählten Typ entspricht. Eine Liste ohne Einträge gilt dabei als "typneutral", besteht also jede Prüfung mit der Option Ist Liste von.
Hinweis: Die Nachschlage- und Typumwandlungsfunktionen greifen nur für Einzelwerte als Eingabewert und nicht für alle Einträge einer als Eingabewert bereitgestellten Liste. Bei Bedarf hilft der Sammle Werte-Wertauflöser.
Siehe auch: Typprüfung, Variable

Der Eingabeobjekt (Typsicher)-Wertauflöser versucht den Eingabewert auf den angegebenen Typ abzubilden und unterstützt dabei vier unterschiedliche Anwendungsfälle:
Typumwandlung in simple Werte (
String,Long, usw.)Nachschlagen eines Aufzählungswerts aus einer statischen oder Dynamischen Aufzählung per Textschlüssel
Nachschlagen einer Entität per ID ►WICHTIG◄ Funktioniert NICHT in einem Client Workflow!
Typprüfung (Prüfen der Klassenzugehörigkeit eines Datenobjekts)
Die Einsatzmöglichkeiten sind vielfältig. Das folgende Schema beschreibt die Varianten im Überblick. Konkrete Konfigurationen s. "Beispiele" (unten).
►HINWEIS◄ Sofern der Eingabewert in einer Variable vorliegt, kann anstelle des Eingabeobjekt (Typsicher)-Wertauflösers oft auch direkt der Variable-Wertauflöser für die beschrieben Zwecke eingesetzt werden. Dieser unterstützt dieselben Parameter und ähnliche Umwandlungslogiken mit dem wichtigsten Unterschied, dass nicht der Eingabewert sondern der Wert einer Variablen verarbeitet wird. Ein wichtiger Unterschied ist allerdings, dass der Eingabeobjekt (Typsicher)-Wertauflöser ohne Angabe für den Typ grundsätzlich $null zurückgibt, während beim Variable-Wertauflöser auf die "Typ"-Auswahl verzichtet werden kann, um den Wert der Variablen zu erhalten.
ACHTUNG
Der Eingabeobjekt (Typsicher)-Wertauflöser ignoriert beim Zugriff auf Entitäten per ID - ebenso wie der Variable-Wertauflöser - jegliche Zugriffsbeschränkungen. Der Zugriff erfolgt - anders als z. B. im Kontext einer Suche - ausdrücklich ohne Berücksichtigung von Rollenberechtigungen (s. Rolle) für den Entitätstyp und Besitzrechten bzw. Firmenfreigaben für die konkrete Entität. Konkret ermöglicht das z. B. den ungehinderten (Lese-)Zugriff auf jede per ID "bekannte" Entität (z. B. ein Benutzerkonto, das als
creator in den Daten einer Entität registriert ist), ohne dass dafür im Kontext einer Ausführen als-Ereignisaktion in eine bestimmte Rolle oder die passende Firma gewechselt werden müsste. Entsprechende Zugriffe sind deshalb auch in Ausführungskontexten möglich, in denen ein Firmen- oder Rollenwechsel technisch nicht möglich ist (z. B. Zuordnungskriterien, Eigene Übersichten, Such API, usw.).
Typumwandlung in simple Werte | |||
Eingabewert-Typ | Ziel-Typ | Bedingung | Rückgabewert |
Simpler Wert | Simpler Wert | Umwandlung des Eingabewerts in den Ziel-Typ möglich | in "Ziel-Typ" umgewandelter Wert |
Umwandlung des Eingabewerts in den Ziel-Typ nicht möglich | kein Wert ( | ||
Beispiel: Anstelle eines | |||
|
| Timestamp kann in | (z. B.) |
| "Datum mit Zeit" ( | Timestamp kann nicht in | kein Wert ( |
Nachschlagen eines Aufzählungswerts aus einer statischen oder Dynamischen Aufzählung per Textschlüssel | |||
Eingabewert-Typ | Ziel-Typ | Bedingung | Rückgabewert |
Textwert | Klasse für Werte einer | Eingabewert entspricht einem Schlüsselwert ( | Aufzählungswert |
Eingabewert gilt nicht als Schlüsselwert für einen Wert der Aufzählung | kein Wert ( | ||
Beispiel: Aus einem Feldwert wird ein Teilstring als "Länderkennzeichen" gewonnen, zu dem das passende Land aus der Dynamischen Aufzählung ermittelt werden soll. | |||
(z. B.) | Land ( |
| Land "Malta" |
(z. B.) |
| kein Wert ( | |
Nachschlagen einer Entität per ID ◄ Funktioniert NICHT in einem Client Workflow! | |||
Eingabewert-Typ | Ziel-Typ | Bedingung | Rückgabewert |
| Entitätstyp | Der Eingabewert verweist auf die ID ( | Entität als "Eingabeobjekt" |
Eingabewert gilt nicht als Schlüsselwert für einen Wert der Aufzählung | kein Wert ( | ||
Beispiel: Ausgehend vom Feld "Besitzer" ( | |||
(z. B.) | "Firmenkonto" ( | Ein Firmenkonto mit der | "Firmenkonto" mit der |
(z. B.) | Es existiert kein Firmenkonto mit der | kein Wert ( | |
Typprüfung: Prüfen der Klassenzugehörigkeit eines Datenobjekts | |||
Eingabewert-Typ | Ziel-Typ | Bedingung | Rückgabewert |
Simpler Wert | Klasse | Datenobjekt ist mit dem Ziel-Typ kompatibel | Datenobjekt (identisch mit dem Eingabewert, also |
Datenobjekt mit Ziel-Typ nicht kompatibel | kein Wert ( | ||
Beispiel: Es soll geprüft werden, ob der Benutzer der Session-Wertauflöser einen Benutzer oder einen Gastbenutzer liefert. ►HINWEIS◄ Das folgende Schema zeigt auch den Effekt einer Prüfung gegen den übergeordnete Klasse "Schnittstelle > Benutzer" ( | |||
Rückgabewert von | Benutzer ( | Ein Benutzer ist angemeldet. | das angemeldete Benutzer-Konto |
Ein Gastbenutzer ist angemeldet. | kein Wert ( | ||
"Schnittstelle > Benutzer" ( | Ein Benutzer ist angemeldet. | das angemeldete Benutzer-Konto | |
Ein Gastbenutzer ist angemeldet. | das angemeldete Gastbenutzer-Konto | ||
Gastbenutzer ( | Ein Gastbenutzer ist angemeldet. | das angemeldete Gastbenutzer-Konto | |
Ein Benutzer ist angemeldet. | kein Wert ( | ||
Konfiguration
Der Wertauflöser erwartet immer einen Eingabewert. Ohne Eingabewert (bzw. mit dem Eingabewert "kein Wert", also: $null) lautet der Rückgabewert immer $null.
Der Parameter Typ definiert die Klasse (oder den Datentyp bzw. Entitätstyp), die abhängig vom Einsatzzweck das Ziel einer Typumwandlung, Typprüfung oder eines Datenabrufs ist. Im Auswahlfeld für den Typ erleichtert eine Suchfunktion (s. Bild rechts) das Auffinden der passenden Klasse für den jeweiligen Zweck. Diese durchsucht die Lokalisierungstexte der Klassen ebenso wie die intern verwendeten eindeutigen Klassennamen. ►WICHTIG◄ Wie das [+]-Symbol andeutet, lässt das Auswahlfeld auch Freitexteingaben zu, die dann als interner Klassenname interpretiert werden. Wenn man sehr schnell einen Suchbegriff eingibt und dann sofort die Eingabetaste drückt, um den vermeintlichen Treffer auszuwählen, kann es passieren, dass der Suchbegriff als Eingabe für einen internen Klassennamen interpretiert wird, wie im folgenden Beispiel. Sofort nach dem Eingeben des Suchtexts Liegt das gewünschte Ergebnis der Suchfunktion beim Drücken der Eingabetaste bereits vor, erscheint im Auswahlfeld die gewünschte Klasse "Long" ( |
|
FALSCH: | |
RICHTIG: | |
Die Option Ist Liste von (per Standard "abgewählt") kann ausgewählt werden, um in Verbindung mit dem Typ festzulegen, dass der "Ziel-Typ" eine Liste von Elementen sein soll, die der Klasse Typ entsprechen.
|
|
►WICHTIG◄ Die Option Ist Liste von veranlasst nicht etwa, dass für alle Elemente einer Liste im Eingabewert "Typumwandlungen" oder "Abrufe von Aufzählungen" ausgeführt werden (s. "FALSCH" unten). In Verbindung mit dem Sammle Werte-Wertauflöser kann der Eingabeobjekt (Typsicher)-Wertauflöser allerdings auch für diesen Zweck genutzt werden. Das Bild rechts zeigt, wie aus einer Liste von IDs von Benutzerkonten eine Liste der betreffenden Benutzer(-konten) gewonnen werden kann. | FALSCH:
Diese "Fehlkonfiguration" prüft effektiv, ob die Variable |
RICHTIG:
►ANMERKUNG◄ Sammle Werte ignoriert |
Beispiele
Beispiel: Typumwandlung in simple Werte
Über das für jede Entität in Lobster Data Platform / Orchestration automatisch registrierte "Erstelldatum" im Feld created soll eine einfache Statistik für einen bestimmten Entitätstyp (hier: "ITEM") erstellt werden, die die Anzahl aller vorhandenen Entitäten des Typs ermittelt und die Dauer der Zeitspanne gegenüberstellt, in der diese erstellt wurden.
Laufzeitbeispiel:
Eine Hinweis anzeigen (Popup)-Ereignisaktion informiert (z. B. immer dann, wenn ein entsprechend befugter Benutzer ein neues "ITEM" erstellt) über den aktuellen Stand der Statistik für diesen Entitätstyp. |
|
Konfiguration:
Die "Rohdaten" für die Statistik können durch eine Tupel-Suche gewonnen werden, die sinngemäß das folgende SQL-Statement abbildet:
SELECT COUNT(*) AS COUNT_items, MIN(created) as MIN_created, MAX(created) AS MAX_created FROM items [WHERE ...]Der Rückgabewert ist eine einzige "Zeile" bzw. in einer geeignet parametrierten Suche (Ereignisaktion) ein Client-Objekt mit den Feldern COUNT_items (Long), MIN_created (Timestamp) und MAX_created (Timestamp).
Für die Angabe der Zeitspanne zwischen dem Erstelldatum der ältesten und der jüngsten ITEM-Entität, die hier nicht näher bezeichneten Suchkriterien erfüllen, ist eine einfache Differenzberechnung notwendig. Die Berechnung soll ausgehend von den Felder für die Projektionen Damit der Datentyp verrechnet werden kann, muss er zuvor in einen numerischen Datentyp umgewandelt werden. Das Bild zeigt, wie in der Definition für die Variable Entsprechend verfährt man, um der Variablen Die |
|
Beispiel: Nachschlagen eines Aufzählungswerts per Textschlüssel
In einem Bestellformular sollen Benutzer einen "Promotion Code" als Freitext eingeben können, um besondere Konditionen zu erhalten:
In Lobster Data Platform / Orchestration ist eine Liste von gültigen Promotion Codes als Dynamische Aufzählung "Promotion code" ( |
|
►ANMERKUNG◄ Man könnte den Workflow vereinfachen, indem der Benutzer direkten Zugriff auf die Multi-Combobox für die "Order Options" erhält. Allerdings würden dem Benutzer dann alle legitimen "Promotion codes" zur Auswahl im Dropdown angeboten. Diese sollen aber naturgemäß ausschließlich über dedizierte Marketing-Kanäle und selektiv bekannt gemacht werden. | |
Konfiguration:
Der Button "Promotion code" löst ein Eigenes Aktionsevent ( Auf dieses Auslösende Ereignis reagiert die rechts abgebildete Ereignisbehandlung. Sofern die Typprüfung in der Prüfenden Regel (nicht im Bild) den Eingabewert als "Bestellung" anerkennt, werden die folgenden Aktionen ausgeführt:
|
|
Nachschlagen einer Entität per ID
►WICHTIG◄ Diese Funktionalität wird in einem Client Workflow nicht unterstützt!
Eine Ereignisbehandlung soll dem angemeldeten Benutzer durch eine Serie von Benachrichtigungen Informationen über alle Firmenkonten bereitstellen, in deren Kontext er sich bei Lobster Data Platform / Orchestration anmelden kann.
Die Funktion soll Benutzern, deren Rolle keinen direkten Zugriff auf die "Firmenüberischt" (s. Firmen anlegen und verwalten) gewährt, das Ausführen von Tests erleichtern, die das spezifische Laufzeitverhalten von Lobster Data Platform / Orchestration im Kontext unterschiedlicher Firmen betreffen.
Das Laufzeitbeispiel rechts zeigt, wie die Ausgabe aussehen soll:
Die besondere Herausforderung für die Beschaffung dieser Daten besteht darin, dass das in einer Sitzung verwendete Benutzerkonto (Benutzer der Session) im Feld "Firmen" ( | Laufzeitbeispiel:
|
Konfiguration:
Eine Ereignisbehandlung, die über ein eigenes eingerichtetes Eigenes Aktionsevent ausgelöst wird, wird wie rechts abgebildet konfiguriert:
|
|
| |
Typprüfung: Prüfen der Klassenzugehörigkeit eines Datenobjekts
In einer Ereignisbehandlung soll der Benutzer einen oder mehrere Zahlwerte (ggf. komma-separiert) eingeben können, die für eine Suche (Ereignisaktion) als Positivliste verwendet werden sollen. In einem typischen Anwendungsfall sollen z. B. Bestellungen über Artikelnummern der den enthaltenen Bestellpositionen referenzierten Produkte ermittelt werden.
Auch wenn Produkte in Lobster Data Platform / Orchestration technisch jederzeit über alphanumerische Artikelnummern identifiziert werden könnten, soll im Anwendungsfall die Suche (Ereignisaktion) ausdrücklich nur dann ausgeführt werden, wenn der Benutzer ausschließlich numerische Werte eingegeben hat.
Laufzeitbeispiel:

Konfiguration:
Im Kopf einer Ausführen mit-Ereignisaktion wird der Benutzereingabe-Wertauflöser verwendet, um dem Benutzer eine Eingabeaufforderung für eine eine komma-separierte Liste von EAN-Codes (als "Artikelnummern") anzuzeigen, die wie folgt verarbeitet wird:
Die durch den Benutzereingabe -Wertauflöser erzeugte Eingabeaufforderung sieht keinerlei Eingaberestriktionen oder Validierungen für den eingegebenen Text vor. Insofern soll bevor die Suche ausgeführt wird, sichergestellt werden, dass das über den JSON-Text erzeugte Objekt den Anforderungen entspricht:
Die Wenn Dann Sonst-Ereignisaktion im Aktionsblock stellt über eine Objekt-Feld-Regel mit dem Ist leer-Vergleichstyp sicher, dass die Suchaktion ein Objekt vorhanden ist, bei dem es sich dem Typ nach um eine Liste von numerischen Werten handelt. ►ANMERKUNG◄ Im "Sonst"-Zweig könnte über das |
|
In der vorliegenden Konfiguration könnte anstelle der Objekt-Feld-Regel im Aktionsblock auch eine Typprüfung mit den Parametern aus dem Eingabeobjekt (Typsicher)-Wertauflöser verwendet werden:
Bisherige Konfiguration:
| Alternative Konfiguration:
|
►HINWEIS◄ Die Typprüfung löst die Aufgabe gleichwertig und sogar eleganter. Dies dürfte für die meisten Anwendungsfälle des Eingabeobjekt (Typsicher)-Wertauflösers gelten, wenn dieser zum Prüfen der Objektklasse eingesetzt wird.
Da es sich bei der Typprüfung um eine Regel (s. Regeln und Werte) und nicht im einen Wertauflöser handelt, bietet der Eingabeobjekt (Typsicher)-Wertauflöser Vorteile, wenn der Rückgabewert $null so genutzt werden kann, dass im gegebenen Kontext konstruktiv keine Wenn Dann Sonst-Ereignisaktion zur Fallunterscheidung nötig ist.
Das wäre etwa dann der Fall, wenn mit dem Rückgabewert ein Eigenes Aktionsevent- ausgelöst wird, das die auszuführende Typprüfung ohnehin ausführt.
Oder der Eingabeobjekt (Typsicher) wird mit einem Standardwert-Wertauflöser verkettet, um den Fall "abzufangen", dass kein "passendes" Objekt vorliegt.
Im vorliegenden Anwendungsfall könnte z. B. eine Liste mit einer "Dummy-Artikelnummer" (s. u.) an die Suche (Ereignisaktion) weitergegeben werden, wenn die Liste aus der Eingabeaufforderung nicht-numerische Werte enthält:
Wenn in Verbindung mit dem Standardwert-Wertauflöser die Suche (Ereignisaktion) immer ausgeführt werden soll, kann die Fallunterscheidung per Wenn Dann Sonst-Ereignisaktion wegfallen. Der Eingabeobjekt (Typsicher)-Wertauflöser kann dann per Verkettung direkt im Kopf der Ausführen mit-Ereignisaktion verwendet werden, wie rechts abgebildet. Falls der Eingabeobjekt (Typsicher)-Wertauflöser feststellt, dass das via JSON-Notation erzeugte Objekt nicht ausschließlich
Der Standardwert-Wertauflöser greift in diesem Sonderfall nicht ein, weil die leere Liste ( |
|


















