Wertauflöser - Kurzfassung
Zweck: Liefert eine Liste aller Schlüsselwerte einer Map bzw. aller Feldnamen eines "Client-Objekts" im Eingabewert.
Tooltip
Verwendung: Der Wertauflöser erwartet als Eingabewert eine Map oder ein Client-Objekt. Die zugehörigen Schlüsselwerte bzw. Feldnamen werden als Liste zurückgegeben, sofern nicht eine über die optionalen Parameter Schlüssel-Typ und Ist Liste von implizierte Typprüfung für die Einträge im Rückgabewert fehlschlägt und der Rückgabewert
$nulllautet.Parameter:
Ein Schlüssel-Typ kann für eine Map optional ausgewählt werden, um den Typ der für den Rückgabewert zu erwartenden Listeneinträge zu deklarieren.
►WICHTIG◄ Für den Zugriff auf die Feldnamen eines "Client-Objekts" im Eingabewert muss der Schlüssel-Typ "String" explizit ausgewählt sein.Die Option Ist Liste von kann verwendet werden, um zu deklarieren, dass es sich bei den Schlüsselwerten in einer Map um Listen handelt.
►WICHTIG◄ Die Auswahl eines Schlüssel-Typs in Verbindung mit Ist Liste von wirkt ausschließlich als Deklaration. Der Typ der Einträge von Listen, die Schlüsselwerte sind, wird nicht geprüft.Warnung:
Falls ein Schlüssel-Typ ausgewählt wird, lautet der Rückgabewert
$null, wenn an einer prüfungsrelevanten Listenposition im Rückgabewert ein Eintrag gefunden wird, der nicht dem Schlüssel-Typ entspricht. Im Server-Kontext sind nur die ersten 5 Listeneinträge prüfungsrelevant, in einem Client Workflow werden dagegen alle Listeneinträge geprüft.
Siehe auch: Map-Wert

Der Alle Map Schlüssel-Wertauflöser erwartet entweder eine Map oder ein "Client-Objekt" als Eingabewert und gibt entweder eine Liste der Schlüsselwerte (Map) bzw. Feldnamen ("Client-Objekt") zurück.
Die Parameter Ist Liste von und Schlüssel-Typ dienen im Wesentlichen dazu, den Datentyp des zu erwartenden Rückgabewerts für den Kontext der Konfiguration zu deklarieren.
Liegt als Eingabeobjekt ein "Client Objekt" vor, muss allerdings der in diesem Zusammenhang alternativlose Schlüssel-Typ
Stringexplizit ausgewählt werden.Im Kontext einer Map gibt es keine Restriktionen für den Datentyp von Schlüsselwerten. Auch Listen oder komplexe Datenobjekte können als Schlüssel verwendet werden.
Typischerweise entsprechen alle Schlüsselwerte einer Map demselben Typ. Ist dieser für den konkreten Anwendungsfall bekannt, dann sollte dieser Typ als Schlüssel-Typ ausgewählt werden.
Allerdings kann dieselbe Map ohne weiteres Schlüsselwerte unterschiedlicher Typen beinhalten. Dann sollte auf die Auswahl für den Schlüssel-Typ verzichtet werden, sofern keine übergeordnete Klasse als Schlüssel-Typ ausgewählt werden kann, der alle in der Map verwendeten Schlüsselwerte entsprechen.
►WICHTIG◄ Im Unterschied zu vielen anderen Wertauflöser, die eine "Typ"-Auswahl in Verbindung mit einer Option Ist Liste von anbieten, wird beim Alle Map Schlüssel-Wertauflöser die Auswahl für den Schlüssel-Typ ignoriert, wenn die Option Ist Liste von ausgewählt ist. Man kann durch eine Kombination der beiden Parameter also nicht etwa spezifizieren, dass alle Schlüsselwerte einem bestimmten Typ entsprechen müssen. Trotzdem wird für den Kontext der Konfiguration der Rückgabewert entsprechend deklariert, z. B. Long[][], also eine Liste von Schlüsselwerten, die wiederum Long-Werte auflisten. Eine individuelle "Prüfung" je Schlüsselwert - also eine Kontrolle, ob dessen Einträge dem Schlüssel-Typ entsprechen - findet nicht statt.
Konfiguration
Die folgende Tabelle definiert die Charakteristik des Wertauflösers per Fallunterscheidung für alle technisch darstellbaren Varianten unabhängig von der Praxisrelevanz:
Typ des | Option | Parameter | Rückgabewert | Hinweise |
|---|---|---|---|---|
Map | unerheblich |
| Liste aller Schlüsselwerte, |
Prüfungsrelevante Listenpositionen sind ...
Der Begriff "Eintrag" bezieht sich dabei immer auf die Liste der Schlüsselwerte der Map und nicht etwa eine Liste, die innerhalb einer Map als Schlüsselwert verwendet wird. Die Reihenfolge der Schlüsselwerte einer Map entspricht dabei im Allgemeinen nicht der Reihenfolge, in der sie der Map hinzugefügt wurden. ►WICHTIG◄ Im Kontext der Prüfung gegen einen Schlüssel-Typ findet keinerlei automatische Typumwandlung statt. Allerdings kann der Schlüssel-Typ eine übergeordnete Klasse sein (z. B. "Entität" oder "Schnittstelle > Benutzer") sein, der unterschiedliche andere Klassen entsprechen. |
| anderer Typ als | |||
| andere Typen | Liste aller Schlüsselwerte, | ||
keine Auswahl | Liste aller Schlüsselwerte | keine | ||
Client-Objekt |
|
| Liste aller Feldnamen des "Client Objekts" | |
unerheblich | anderer Typ als | "Kein Wert" ( | ||
| beliebiger Typ |
Beispiele
Einfacher Anwendungsfall: Schleife über alle Daten in einer Map
Eine Map wird verwendet, um die Sitzplatzreservierung für einen Linienflug abzubilden. Die Map verwendet als Schlüsselwerte die alphanumerischen Kennungen der Sitzplätze, die sich aus der Nummer der Sitzreihe (1, 2, ...) und dem Kennbuchstaben der Sitzposition innerhalb der Reihe (A, B, C, ...) zusammensetzt. Besteht eine Reservierung für einen Sitzplatz wird dem betreffenden Schlüsselwert eine Zeichenfolge zugewiesen, die den Passagier im üblichen Schema <Nachname>/<Vorname[n]><Anrede> kennzeichnet. Es gilt die Annahme, dass in der Map nur für reservierte Sitzplätze überhaupt ein Schlüsselwert vorliegt.
Im Kontext einer Ereignisbehandlung liegen alle bestehenden Reservierungen für ein bestimmten Flug als Daten in dieser Map bereits vor. Zur Kontrolle soll für jede Reservierung eine Benachrichtigung ausgegeben werden.
Konfiguration:
Im Kopf der rechts abgebildeten Für jeden Eintrag wiederholen (Schleife) wird der Alle Map-Schlüssel-Wertauflöser verwendet, um eine Liste der Sitzplatznummern aller reservierten Sitzplätze zu erhalten.
Innerhalb der Schleife gibt eine Hinweis anzeigen (Popup)-Ereignisaktion die in der Map enthaltene Informationen zur Sitzplatzreservierung als Benachrichtigung vom Typ "Info" aus:
Laufzeitbeispiel: (Auszug aus einer längeren "Passagierliste")
|
|
Einfacher Anwendungsfall: Feldnamen eines "Client Objekts" auflisten
Im Kontext einer Ereignisbehandlung wird über einen Wert aus SQL-Abfrage-Wertauflöser ein SELECT-Statement für eine Datenbanktabelle in einer Datenbank ausgeführt, auf die der Lobster Data Platform / Orchestration-Server über einen Alias zugreifen kann.
Sofern das konkrete SELECT-Statement überhaupt Ergebniszeilen liefert, gibt der Wertauflöser diese als Liste von "Client Objekten" zurück, von denen jedes einen Datensatz repräsentiert. Die Felder jedes dieser Client-Objekte enthalten die Daten des Datensatzes. Die Feldnamen ergeben sich dabei aus den Projektionen im SELECT-Statement.
Im Beispiel führen wir ein PostgreSQL-Statement nach dem Schema SELECT * FROM <table_name> LIMIT 1 aus, um die erste Zeile einer Datenbank-Tabelle komplett zu lesen, ohne dass deren Struktur explizit bekannt sein muss. Anschließend soll informativ eine Liste der Feldnamen per Benachrichtigung ausgegeben werden.
Konfiguration:
Die rechts abgebildete Ausführen mit-Ereignisaktion definiert die erste "Ergebniszeile" aus dem im Wert aus SQL-Abfrage-Wertauflöser definierten SQL-Statements als Bezugsobjekt für die Ausgabe der Benachrichtigung im Aktionsteil.
|
| Laufzeitbeispiel:
Im Beispiel lautete das SQL-Statement:
... mit dem Alias ►ANMERKUNG◄ Im Kontext einer Schleife könnte auch eine Liste von Feldname/Feldwert-Paaren ausgegeben werden, wobei der Alle Map-Schlüssel-Wertauflöser und der Map-Wert-Wertauflöser analog zum vorherigen Beispiel im Gespann eingesetzt werden müssen. |





