Teilstring
Wertauflöser - Kurzfassung
Zweck: Gibt einen zusammenhängenden Ausschnitt (Teilstring) der als Eingabewert übergebenen Zeichenfolge zurück.
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 |
>=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 |
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. |
|
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:
►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:
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:
|
|
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. |
|