Text ersetzen

Wertauflöser - Kurzfassung

Zweck: Durchsucht die Zeichenfolge im Eingabewert nach Übereinstimmungen mit dem Suchtext und wendet die per Ersetzen mit definierte Ersetzung an, um den Rückgabewert zu erzeugen.

images/download/attachments/78258512/image2022-6-27_13-43-50-version-1-modificationdate-1656330230994-api-v2.png

Der Text ersetzen-Wertauflöser sucht innerhalb Zeichenfolge im Eingabewert nach Übereinstimmungen mit dem Suchtext und wendet die per Ersetzen mit definierte Ersetzung an, um den Rückgabewert zu erzeugen.

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

Per Option Regulärer Audruck? kann der Suchtext als Regulärer Ausdruck interpretiert werden. Dann unterstützt der Ausdruck für Ersetzen mit auch Referenzen auf im Suchtext definierte Gruppen ($1, $2, ...).

Konfiguration

Parameter

Bedeutung

Suchtext

Dieser Parameter definiert die im Eingabewert gesuchte Teilzeichenfolge bzw. den Regulären Ausdruck, der zu ersetzende Passagen identifiziert.

Ersetzen mit

Dieser Parameter definiert die Zeichenfolge, die im Eingabewert an jeder Passage eingesetzt wird, die als Treffer für den Suchtext gilt.

In Verbindung mit der Option Regulärer Ausdruck? kann der Ersetzungsausdruck Platzhalter für im Suchtext definierte Gruppen ($1, $2, ...) verwenden.

Regulärer Ausdruck?

Die Option Regulärer Ausdruck? entscheidet, ob der Suchtext als Regulärer Ausdruck interpretiert oder (per Standard) als Klartext im Eingabewert gesucht wird.

HINWEIS◄ Die Parameter Suchtext und Ersetzen mit können per Direkteingabe (als Text) oder über Wertauflöser zur Laufzeit festgelegt werden.

Im Beispiel rechts wurde der Suchtext direkt als statischer Text (#company#) eingegeben. Da die Option Regulärer Ausdruck? nicht ausgewählt ist, wird der Eingabewert nach allen Übereinstimmungen mit dieser Zeichenfolge durchsucht.

Der Wert für Ersetzen mit wird über den Firma der Session-Wertauflöser zur Laufzeit ermittelt. Jeder Treffer für den Suchtext (#company#) wird durch den Namen (address.name1) der Firma aus dem anwendbaren Anmeldekontext ersetzt.

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. Suchtext im Screenshot) eingeleitet werden. Wird anstelle eines Wertauflösers "kein Wert" (aus dem Kontextmenü) ausgewählt, erscheint beim nächsten Aufklappen des Text ersetzen-Wertauflösers wieder die Direkteingabe.

images/download/attachments/78258512/image2022-6-27_14-16-42-version-1-modificationdate-1656332202313-api-v2.png

Beispiele

Einfaches Beispiel (Option "Regulärer Ausdruck?" abgewählt)

Als Eingabewert liegt eine Zeichenfolge vor, die unterschiedliche Merkmale eines Containers (BIC-Code, Farbe, Größe, usw.) separiert durch Leerzeichen enthält. Beispiel: SCMU3216083 WHT/BLU 40ft

In einer Benachrichtigung soll diese Zeichenfolge so aufbereitet werden, dass anstelle des Leerzeichens ein Zeilenwechsel und Semigrafik-Zeichen (└─) eingefügt werden, so dass die Angaben nach dem BIC-Code wie Detailelemente in einem Baum erscheinen.

Laufzeitbeispiel: (mit den oben angegebenen Beispieldaten)

images/download/attachments/78258512/image2022-6-27_17-18-28-version-1-modificationdate-1656343108923-api-v2.png

Konfiguration:

Innerhalb der Hinweis anzeigen (Popup)-Ereignisaktion wird der Text ersetzen-Wertauflöser wie folgt parametriert, um den hier als Bezugsobjekt anliegenden Eingabewert in den gewünschten Ausgabetext für die Meldung zu verarbeiten:

  • Als Suchtext wurde hier ein Leerzeichen " " als statischer Text direkt eingegeben. Das Leerzeichen ist im Bild nicht zuerkennen.

    HINWEIS◄ Per Textmarkierung (z. B. Strg+A) im Eingabefeld kann man das Leerzeichen indirekt sichtbar machen.

  • In der Zeichenfolge Ersetzen mit wird ein Zeilenwechsel eingegeben (direkt per Eingabetaste und nicht etwa als HTML-Newline \n). Es folgen zwei Zeichen, die z. B. mit gedrückter Alt-Taste per Ziffernblock eingegeben werden können (Alt+192, Alt+196).

images/download/attachments/78258512/image2022-6-27_17-20-14-version-1-modificationdate-1656343214750-api-v2.png

Komplexeres Beispiel (Option "Regulärer Ausdruck?" ausgewählt)

Das vorherige Beispiel soll nun unter der Annahme angepasst werden, dass die Zeichenfolge mit den "Container-Details" im Eingabewert immer dieselben Tokens (@BIC@ @COLOR@ @SIZE@) in genau dieser Reihenfolge enthält.

Auf dieser Grundlage sollen diese Informationen in eine XML-Struktur umgewandelt werden:

Zielstruktur (schematisch)

Laufzeitbeispiel


<container bic=@BIC@>
<color>@COLOR@</color>
<size>@SIZE@</size>
</container>

images/download/attachments/78258512/image2022-6-27_17-49-27-version-1-modificationdate-1656344967812-api-v2.png

Konfiguration:

Im Text ersetzen-Wertauflöser wird diesmal die Option Regulärer Ausdruck? gesetzt, da der Eingabewert mit Hilfe eines Regulären Ausdrucks als Suchtext bequem in die erwarteten Tokens "zerlegt" werden kann:

  • Die erste Gruppe ($1) erfasst alle nicht-leeren Zeichen ab dem Beginn der Zeichenfolge "(^\S+?)" bis zum ersten Leerzeichen "\s".

  • Die zweite Gruppe ($2) erfasst alle nachfolgenden nicht-leeren Zeichen bis zum nächsten Leerzeichen.

  • Die dritte Gruppe ($3) erfasst alle nachfolgenden nicht-leeren Zeichen.

Der Ausdruck für Ersetzen mit transformiert die erfassten Gruppen in das XML-Format der Zielstruktur, indem die Platzhalter mit Literalen kombiniert werden.

images/download/attachments/78258512/image2022-6-27_17-57-44-version-1-modificationdate-1656345464299-api-v2.png

Weitere Beispiele (Option "Regulärer Ausdruck?" ausgewählt)

Die folgende Tabelle zeigt weitere Beispiele für den Einsatz von Regulären Ausdrücken zum Text ersetzen:

Zielsetzung

Eingabewert

Suchtext

Ersetzen mit

Ergebnis

Containernummer an beliebiger Position finden und "neutralisieren"

CONTAINERS: SCMU3216083 WHT/BLU 40ft ABCU1234560 RED/YLW 20ft

\b[A-Z]{4}[0-9]{7}\b

@BIC@

CONTAINERS: @BIC@ WHT/BLU 40ft @BIC@ RED/YLW 20ft

Containernummer an beliebiger Position erkennen und alle anderen Textabschnitte "neutralisieren"

CONTAINERS: SCMU3216083 WHT/BLU 40ft ABCU1234560 RED/YLW 20ft

(?<=^|\b[A-Z]{4}[0-9]{7}\b).*?(?=\b[A-Z]{4}[0-9]{7}\b|$)

" "
Leerzeichen

SCMU3216083 ABCU1234560

Containernummer strukturiert zurückgeben

SCMU3216083

(^[A-Z]{3})([A-Z])(\d{6})(\d)

$1 $2 $3[$4]

SCM U 321608[3]

Einheit "ft" bzw. "FT" für Containergröße ersetzen durch Minutensymbol (')

(zwei Alternativen)

CONTAINERS: SCMU3216083 WHT/BLU 40ft MFTU1234560 RED/YLW 20FT

/\b(\d+)ft\b/i

$1' Platzhalter ($1) kopiert Zifferngruppe

CONTAINERS: SCMU3216083 WHT/BLU 40' ABCU1234560 RED/YLW 20'

CONTAINERS: SCMU3216083 WHT/BLU 40ft MFTU1234560 RED/YLW 20FT

/(?<=\b\d+)ft\b/i

"Positive lookbehind" prüft ob Zifferngruppe vorangestellt ist

'

CONTAINERS: SCMU3216083 WHT/BLU 40' ABCU1234560 RED/YLW 20'