Alle Map-Schlüssel
Wertauflöser - Kurzfassung
Zweck: Liefert eine Liste aller Schlüsselwerte einer Map bzw. aller Feldnamen eines "Client-Objekts" im Eingabewert.
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 String explizit 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 |
List |
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 List |
|||
|
andere Typen |
Liste aller Schlüsselwerte, |
||
keine Auswahl |
Liste aller Schlüsselwerte |
keine |
||
Client-Objekt |
|
String |
Liste aller Feldnamen des "Client Objekts" |
|
unerheblich |
anderer Typ als String |
"Kein Wert" ($null) |
||
|
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: SELECT * FROM dw_log LIMIT 1 ... mit dem Alias hub(Standard für die Datenbank des Embedded Data) ►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. |