Text-Liste zusammenführen
Wertauflöser - Kurzfassung
Zweck: Verkettet Zeichenfolgen, die aus den Einträgen einer als Eingabewert bereitgestellten Liste übernommen oder gewonnen werden, über einen optional definierbaren Separator zu einer gemeinsamen Zeichenfolge.
Siehe auch: Textverkettung, concatWs (Texte verketten) für Berechnungsausdruck, Text aufteilen (Umkehrfunktion)
Der Text-Liste zusammenführen-Wertauflöser verkettet Zeichenfolgen, die aus den Einträgen einer als Eingabewert bereitgestellten Liste übernommen oder gewonnen werden, über einen optional definierbaren Separator zu einer gemeinsamen Zeichenfolge.
Folgende Sonderfälle sind zu unterscheiden:
Liegt als Eingabewert "Kein Wert" ($null) vor, lautet auch der Rückgabewert "Kein Wert" ($null).
Handelt es sich bei einem Listeneintrag um einen anderen Datentyp als Text (String), dann wird dessen String-Abbild verwendet.
Liegt ein Eingabewert vor, der in Lobster Data Platform / Orchestration nicht als "Liste" gilt, dann wird dieser behandelt, als handelte es sich um den einzigen Eintrag einer Liste. Der Wert selbst bzw. sein String-Abbild ist damit der Rückgabewert.
►HINWEIS◄ Enthält eine Liste "Kein Wert" ($null) als Eintrag gilt als String-Abbild eine leere Zeichenfolge "" (und nicht etwa null). Ist in diesem Fall kein Separator definiert (Standard), dann könnte der Eindruck entstehen, leere Einträge werden komplett "übersprungen". In Verbindung mit einem Separator erkennt man sofort, dass dies nicht der Fall ist.
Konfiguration
Die Liste mit den Einträgen, die in eine zusammenhängende Zeichenfolge überführt werden sollen, wird als Eingabewert erwartet, der im Kontext einer Verkettung (s. Verketteter Wertauflöser) vom Vorgänger übergeben wird oder als Bezugsobjekt vorliegt.
Der optionale Parameter Separator kann wahlweise als statischer Text per Direkteingabe (s. Screenshot rechts oben) bereitgestellt oder - nach einem Klick auf den kleinen grauen Pfeil links unten im per Standard angezeigten Textfeld - durch eine Wert-Konfiguration bestimmt werden, deren Rückgabewert zur Laufzeit ermittelt und (ggf. als String-Abbild) in den Rückgabewert übernommen wird (s. Screenshot rechts unten). Mit beiden Methoden kann ein einzelnes "Trennzeichen" ebenso zugewiesen werden wie ein beliebiger längerer Textwert, der ggf. wiederholt im Rückgabewert erscheint. ►ANMERKUNG◄ Der Separator wird dabei nach jedem Listeneintrag außer dem letzten in den zurückgegeben Textwert "eingeschoben", also mit length - 1 Wiederholungen (length ist die Anzahl Listeneinträge). |
|
Beispiele
Einfacher Anwendungsfall: Textwerte verketten
Über eine Variable iata_codes wird eine Liste mit einer flexiblen Anzahl an IATA Codes für Flughäfen bereitgestellt, die eine "Route" beschreiben, die in der gegebenen Reihenfolge abgeflogen wird.
In einer Benachrichtigung sollen die aufgelisteten iata_codes per Textverkettung über den den Text " → " (ein Pfeilsymbol zwischen zwei Leerzeichen) als Separator zusammengeführt werden.
Laufzeitbeispiel:
Konfiguration:
Im Screenshot rechts stellt eine Ausführen mit-Ereignisaktion die Variable iata_codes als temporäres Bezugsobjekt für den enthaltenen Aktionsblock bereit.
|
|
Einfacher Anwendungsfall: Adressmerkmale zu einem "Matchcode" verketten
Ausgewählte Merkmalen einer Adresse (s. Adressen) sollen über den Unterstrich ("_") als Separator zu einem "Matchcode" verkettet werden, der z. B. zum Nachschlagen in einem Fremdsystem oder zum Erkennen und Zusammenführen von redundanten Varianten einer Adresse dienen kann.
Das "Verkettungsschema" sieht dabei vor, dass die Textkomponenten für die relevanten Adressfelder "Name" (name1), "Name 2" (name2), "Name 3" (name3), "Stadt" (city) und "Land" (countryCode) in dieser Reihenfolge und umgewandelt in Großbuchstaben in den "Matchcode" eingehen sollen, falls sie überhaupt einen Wert enthalten.
Laufzeitbeispiel:
►ANMERKUNG◄ Am Matchcode ist ablesbar, dass in der Adresse nur zwei Namensfelder ausgefüllt sind, aber nicht um welche es sich handelt. Für den Matchcode soll das ausdrücklich keine Rolle spielen. Dass Felder ohne Wert effektiv (und inkl. Separator) übersprungen werden sollen und die Anzahl der sichtbar verketteten Komponenten damit variabel ist, spricht hier klar für den Einsatz des Text-Liste zusammenführen-Wertauflösers gegenüber dem Textverkettung-Wertauflöser, der nur ein starres Verkettungsschema vorsieht.
Konfiguration:
Der Screenshot rechts zeigt wie der Text-Liste zusammenführen-Wertauflöser im Kontext eines Bezugsobjekts vom Typ "Adresse" (Address) eingesetzt werden kann, um den "Matchode" nach der genannten Vorschrift auf eine Variable matchCode abzubilden. Die Zuweisung ermöglicht hier eine Wert setzen-Ereignisaktion:
|
|
►HINWEIS◄ Da das Feld "Land" (countryCode) nicht direkt einen Textwert sondern einen Wert aus der Dynamischen Aufzählung Land beisteuert, wird (hier: vom In Großbuchstaben-Wertauflöser) das String-Abbild für den Aufzählungswert ins Spiel gebracht. Dabei ist zu beachten, dass das String-Abbild für einen Aufzählungswert für Server-Kontext und Client-Kontext unterschiedlich definiert ist. Im gegeben Beispiel geht es um das Land "Deutschland", das intern in Anlehnung an den ISO-alpha2-Code mit dem Namen DE bezeichnet wird. Dieser gilt nur im Server-Kontext als String-Abbild (s. Laufzeitbeispiel), während im Client-Kontext die anwendbare Lokalisierung (per Standard "Deutschland") als String-Abbild zurückgegeben wird. Soweit erforderlich, kann ein übereinstimmendes String-Abbild unabhängig vom Kontext hier erzwungen werden, indem beim Lesezugriff auf das Feld "Land" (countryCode) explizit auf das Feld "Name" des Aufzählungswerts (countryCode.name) abgestellt wird.