Teilstring

Wertauflöser - Kurzfassung

Zweck: Gibt einen zusammenhängenden Ausschnitt (Teilstring) der als Eingabewert übergebenen Zeichenfolge zurück.

images/download/attachments/106957538/image2022-6-27_10-40-9-version-1-modificationdate-1656319209989-api-v2.png

Der Teilstring-Wertauflöser gibt einen zusammenhängenden Ausschnitt (Teilstring) der als Eingabewert übergebenen Zeichenfolge zurück.

Die Parameter Startindex und Max. Länge definieren die Position und die (maximale) Länge des zurückgegebenen Ausschnitts.

  • Liegt kein Wert ($null) als Eingabewert vor, wird kein Wert ($null) zurückgegeben.

  • Für Eingabewerte, die keine Strings sind, wird deren String-Abbildung verarbeitet.

Konfiguration

Parameter

Wertebereich

Bedeutung

Startindex
(Standard: 0)

>=0

Index zählt von links nach rechts; 0 verweist auf das erste Zeichen des Eingabewerts

<0

Index zählt von rechts nach links; -1 verweist auf das letzte Zeichen des Eingabewerts

Max. Länge
(Standard: 0)

0

"alle" (beliebig viele) Zeichen ab der per Startindex definierten Position

>0

maximale Anzahl der Zeichen ab der per Startindex definierten Position

<0

Fehler (Process Exception: String index out of range)

Beide Parameter können per Direkteingabe (als positive oder negative Ganzzahl) oder über einen Wertauflöser zur Laufzeit festgelegt werden.

Im Beispiel rechts wurde für den Startindex der Wert -10 direkt eingegeben. Der zurückgegebene Ausschnitt beginnt also mit dem zehnten Zeichen von hinten in der als Eingabewert übergebenen Zeichenfolge.

Für den Parameter Max. Länge wird ein Variable-Wertauflöser verwendet, damit zur Laufzeit der Wert der Variablen maxCharacters verwendet wird, um die Länge des Abschnitts zu begrenzen

HINWEIS◄ Ausgehend von der per Standard vorgesehenen Direkteingabe muss die Definition eines Wertauflösers per Klick auf den kleinen grauen Pfeil links unten im Eingabewert (s. Startindex im Screenshot) eingeleitet werden. Wird anstelle eines Wertauflösers "kein Wert" (aus dem Kontextmenü) ausgewählt, erscheint beim nächsten Aufklappen des Teilstring-Wertauflösers wieder die Direkteingabe.

images/download/attachments/106957538/image2022-6-27_11-22-6-version-1-modificationdate-1656321726622-api-v2.png

Beispiele

Beispiele für die Parametrierung

Die folgende Tabelle verdeutlicht schematisch am Beispiel der Zeichenfolge SCMU3216083 BLU/WHT 40ft als Eingabewert (11-stelliger BIC-Code eines Containers gefolgt von einem Leerzeichen und danach Beschreibungstext) den Effekt des Teilstring-Wertauflösers mit unterschiedlichen Parametern:

Startindex

Max. Länge

Ergebnis

Kommentar

0 (oder: kein Wert)

0 (oder: kein Wert)

SCMU3216083 BLU/WHT 40ft

alle Zeichen

0 (oder: kein Wert)

3

SCM

Besitzer (erste drei Zeichen der Containernummer)

12

0 (oder: kein Wert)

BLU/WHT 40ft

Beschreibung (beliebig viele Zeichen ab 13. Zeichen)

10

1

3

Prüfziffer (am Ende der Containernummer also 11. Zeichen)

-4

0 (oder: kein Wert)

40ft

hier: Containertyp (Konvention: "letzte 4 Zeichen")

-4

2

40

hier: Ziffern für Länge des Containers in Fuß (lt. Konvention)

-80

0 (oder: kein Wert)

SCMU3216083 BLU/WHT 40ft

die letzten 80 Zeichen → "alle" wenn weniger als 81 Zeichen

0 (oder: kein Wert)

80

SCMU3216083 BLU/WHT 40ft

die ersten 80 Zeichen → "alle" wenn weniger als 81 Zeichen

Komplexeres Konfigurationsbeispiel

Die Lesbarkeit einer Zeichenfolge, die wie im Beispiel oben den BIC-Code eines Containers mit einem Beschreibungstext von undefinierter Länge kombiniert, soll durch das Einfügen von Leerzeichen zwischen den Segmenten innerhalb der Containernummer verbessert werden.

Laufzeitbeispiel:

images/download/attachments/106957538/image2022-6-27_11-57-17-version-1-modificationdate-1656323837618-api-v2.png

HINWEIS◄ Die folgende Konfiguration demonstriert den Einsatz des Teilstring-Wertauflösers im Kontext einer Schleife mit dynamischen Zuweisungen für die Parameter. Die gewünschte "Segmentierung" der Zeichenfolge kann auch über den Text ersetzen-Wertauflöser über einen regulären Ausdruck erreicht werden.

Konfiguration:

Damit die "Segmentierung" der Zeichenfolge bei Bedarf möglichst einfach angepasst werden kann, wird in der folgenden Konfiguration die gewünschte Länge der betreffenden Segmente über eine statische Zeichenfolge definiert, die als Array von Ganzzahlen in der JSON-Notation interpretiert werden kann: [3,1,6,1,0]

Der Wert 0 an der letzten Position bedeutet dabei, dass alle Zeichen nach der 11-stelligen (3+1+6+1) Containernummer ausgegeben werden sollen.

Der Objekt aus JSON erzeugen-Wertauflöser erzeugt aus dem statischen Text eine Liste von Ganzzahlen, die im Kopf einer Für jeden Eintrag wiederholen (Schleife) im Parameter Wertauflöser für Einträge verarbeitet werden kann.

Im Kopf der Schleife legt der Parameter String in Variable speichern fest, dass der Eingabewert (die Zeichenfolge, die strukturiert werden soll) in der Variablen input gespeichert wird. Diese Variable ermöglicht den Zugriff auf die Zeichenfolge innerhalb einer Iteration der Schleife.

Der Screenshot rechts zeigt im Aktionsblock für die Iteration eine Setze Wert-Ereignisaktion, die verwendet wird, um die strukturierte Zeichenfolge für die Ausgabe in der Variablen output sukzessive aufzubauen. Dazu wird (rechts) ein Textverkettung-Wertauflöser verwendet, der mit jeder Iteration einen weiteren Teilstring aus der Variablen input an den bisherigen Inhalt der Variablen output anhängt.

Je Iteration ändern sich dabei die Parameter im Teilstring-Wertauflöser:

  • Der Startindex wird aus einer Variablen cursor gelesen, die im folgenden Schritt je Iteration neu berechnet wird.

  • Als Max. Länge wird die für die jeweilige Iteration als Bezugsobjekt geltende Ganzzahl aus dem im Kopf der Schleife definierten Array verwendet, die der Objekt-Feld-Wertauflöser ohne Angabe eines Felds liefert.

Vor jedem "Anhang" aus der input-Variablen wird ein Leerzeichen eingefügt (s. Position 2 im Textverkettung-Wertauflöser).

Um überschüssige Leerzeichen zu eliminieren, wird an zwei Stellen der Trim-Wertauflöser verkettet:

  • In der Verkettung mit dem Teilstring-Wertauflöser verhindert der "innere" Trim-Wertauflöser, dass im output ein doppeltes Leerzeichen vor dem Beschreibungstext erscheint, der schon im input durch ein Leerzeichen getrennt ist.

  • Der "äußere" Trim-Wertauflöser unterhalb der Textverkettung dient im Wesentlichen dazu, dass führende Leerzeichen vor dem ersten Segment zu eliminieren, das entsteht, weil die Variable output in der ersten Iteration noch kein Zeichen enthält.

images/download/attachments/106957538/image2022-6-27_12-6-50-version-1-modificationdate-1656324410839-api-v2.png

Die Variable cursor wird verwendet, um den Startpunkt für die jeweils nächste Iteration zu definieren. Dies erreicht eine weitere Setze Wert-Ereignisaktion, in der die Anzahl der in der aktuellen Iteration übernommenen Zeichen (s. Variable segment im Berechne Wert-Wertauflöser) zum bisherigen Wert von cursor addiert wird. Der "Wert" (value) dieser Summe definiert dem Startindex für den nächsten "zu kopierenden" Abschnitt. Er wird der Variablen cursor zugewiesen.

WICHTIG◄ Den in der Schleife verwendeten Variablen output und cursor sollten vor dem Beginn der Schleife mit dem Wert $null bzw. 0 initialisiert werden, da sonst "Vorbelegungen" dieser Variablen das Ergebnis verfälschen können.


images/download/attachments/106957538/image2022-6-27_12-32-10-version-1-modificationdate-1656325930982-api-v2.png