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)

images/download/attachments/167859217/image-2025-3-4_14-9-1-version-1-modificationdate-1741093740743-api-v2.png

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).

images/download/attachments/167859217/image-2025-3-4_14-56-24-version-1-modificationdate-1741096584080-api-v2.png


images/download/attachments/167859217/image-2025-3-4_14-58-13-version-1-modificationdate-1741096693344-api-v2.png

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:

images/download/attachments/167859217/image-2025-3-4_15-31-45-version-1-modificationdate-1741098705344-api-v2.png

Konfiguration:

Im Screenshot rechts stellt eine Ausführen mit-Ereignisaktion die Variable iata_codes als temporäres Bezugsobjekt für den enthaltenen Aktionsblock bereit.

  • Die Konfiguration für den Variable-Wertauflöser verdeutlicht hier, dass die IATA-Codes als Liste von Einträgen mit dem Typ String vorliegen sollen. Der Typhinweis für den Aktionsblock lautet daraufhin String[].

  • Im Aktionsblock wird eine Hinweis anzeigen-Ereignisaktion ausgeführt:

    • Der Titel ROUTE wird als statischer Text zugewiesen.

    • Die Meldung kann hier direkt als Rückgabewert eines Text-Liste zusammenführen-Wertauflösers erzeugt werden.

      • Der Separator wird hier wiederum als Text direkt zugewiesen.

        ANMERKUNG◄ Die "randständigen" Leerzeichen sind im Screenshot nicht gut zu erkennen. Sie verbessern die Lesbarkeit des Rückgabewerts für "menschliche" Adressaten, da das Sonderzeichen "Pfeil nach rechts" (Alt+26) ohne Leerzeichen sehr eng an die Textzeichen anstößt.

images/download/attachments/167859217/image-2025-3-4_15-32-36-version-1-modificationdate-1741098756344-api-v2.png

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:

images/download/attachments/167859217/image-2025-3-4_16-12-56-version-1-modificationdate-1741101176362-api-v2.png

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:

  • Auf der linke Seite definiert ein Variable-Wertauflöser eine Variable mit dem Namen matchCode als Ziel für die Zuweisung. Der ausgewählte Typ (String) verdeutlicht, dass eine Zeichenfolge erwartet wird.

  • Auf der rechten Seite der Zuweisung wird der zugewiesene Wert durch eine Wertauflöserkette (s. Verketteter Wertauflöser) definiert:

    • Der Erzeuge Liste-Wertauflöser definiert initial die Zusammenstellung der Adressfelder inkl. deren Reihenfolge als Einträge der Liste über eine Serie von Wert-Konfigurationen mit Objekt-Feld-Wertauflösern.

    • Der verkettete Sammle Werte-Wertauflöser wandelt die als Liste bereitgestellten Textwerte über den im Parameter Wert zum Sammeln "eingehängten" In Großbuchstaben-Wertauflöser in Großbuchstaben um.
      WICHTIG◄ In der zurückgegebenen Liste fehlen "automatisch" alle Felder ohne Wert, weil Sammle Werte diese überspringt.

    • Der Text-Liste zusammenführen-Wertauflöser muss die ggf. verkürzte Liste abschließend nur noch über den Separator "_" verketten.

images/download/attachments/167859217/image-2025-3-4_16-24-53-version-1-modificationdate-1741101893386-api-v2.png

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.