Dynamische Funktionen: Sonstige

edipath

Beschreibung Mit der dynamischen Funktion edipath können [edipath-Ausdrücke](b2b_cust_EDIPATH.html) ausgewertet werden.
Syntax ${edipath(e)}
Parameter Die dynamische Funktion erwartet einen Edipath als Argument.
Beispiel ${edipath(UNB+5+0)}

if

Beschreibung Mit der dynamischen Funktion if können Anweisungen und Verzweigungen umgesetzt werden, analog der Kontrollstruktur if..then..else, die in den Programmiersprachen existiert
Syntax ${if(Bedingung, Dann-Wert, Sonst-Wert)}
Parameter Bedingung: eine Bedingung, die wahr oder falsch ist (true oder false). Sinnvollerweise soll hier ein dynamischer Ausdruck stehen, der einen solchen Wert zurückgibt (equals, greaterThan, lessThan). Es können aber auch andere dynamsiche Funktionen benutzt werden, solange sie die Werte 'true' oder 'false' zurückgeben
Dann-Wert: Wert, der bei zutreffender Bedingung (true) zurückgegeben werden soll. Kann ein dynamischer Ausdruck sein
Sonst-Wert: Wert, der bei nicht zutreffender Bedingung (false) zurückgegeben werden soll. Kann ein dynamischer Ausdruck sein. Falls beim else-Fall nichts zurückgegeben werden soll (leerer String), kann der dritte Parameter leer sein.
Beispiel ${if(${equals(${gpvalue(SYSTEM)},PROD)}, ${loadextensionproperty(SYSTEM_CONFIGURATION, ISU_SERVICE)}, dummy_service)}
Erklärung: Falls in der Global Property 'SYSTEM' der Wert 'PROD' steht, wird ein Wert aus der Extension SYSTEM_CONFIGURATION geladen, ansonsten der Wert 'dummy_service' zurückgegeben.

${if(${equals(${template(&(this.FORMAT.senderCode))}, 12345678)}, good sender, bad sender)}
Erklärung: Falls der Sender der Nachricht 12345678 ist, wird 'good sender' zurückgegeben, ansonsten 'bad sender'.

${if(${equals(${template(&(this.FORMAT.senderCode))}, 12345678)}, good sender, )} Erklärung: Falls der Sender der Nachricht 12345678 ist, wird 'good sender' zurückgegeben, ansonsten wird ein leerer Wert zurückgegeben.

orElse

Beschreibung Mit der dynamischen Funktion orElse können zwei Anweisungen so verknüpft werden, dass wenn die erste einen leeren Wert zurück gibt, der Rückgabewert der zweiten Verwendung findet.
Eine der Anwendungsmöglichkeiten: einen Default-Wert für eine beliebige andere dynamische Funktion angeben.
Syntax ${orElse(ErsteAnweisung, ZweiteAnweisung)}
Parameter ErsteAnweisung: Wenn das Ergebnis dieses Ausdruck nicht der leere String ist, wird dieser Wert zurück gegeben.
ZweiteAnweisung: Wenn der erste Ausdruck den leeren String als Ergebnis liefert, wird das Ergebnis dieses Ausdruck geliefert.
Beispiel ${orElse(${var(B3P_MAIL_FROM)}, no@n.o)}
Erklärung: Falls im MessageContext kein Wert für 'B3P_MAIL_FROM' hinterlegt ist, wird 'no@n.o' zurück gegeben

${orElse(${gpvalue(SYSTEM)},${extensionLoadProperty(EXTENSION,KEY)})}
Erklärung: Falls die GP 'SYSTEM' nicht gesetzt ist, wird der Wert aus der Extension 'EXTENSION' hinter dem Schlüssel 'KEY' geladen

length

Beschreibung Die dynamische Funktion length(Variablename) gibt die Länge in Byte eines Wertes im MessageContext zurück. Es können mehrere Variablen mit | (oder) getrennt angegeben werden. Es wird der Wert der ersten Variable ausgegeben, welche existiert (also eine Länge > 0 hat). Weiterhin kann eine dynamische Funktion angegeben werden. Es wird die Länge der ausgewerteten Funktion ausgegeben.
Syntax ${length(<message-context-key>)}
Parameter Variablename = Variable aus dem MessageContext. Die Variable muss vom Typ String sein.
Beispiel ${length(CURRENT_PAYLOAD|B3P_BASE_MESSAGE)}
Erklärung: Die Länge von CURRENT_PAYLOAD wird ausgelesen.
${length(${edipath(LOC[1+0="172"]+2+0)})}
Erklärung: Ergibt die Länge des Zählpunktes in der Nachricht.

refnumgen

Beschreibung Die dynamische Funktion refnumgen erzeugt eine zufällige Referenznummer.
Syntax ${refnumgen()}
Parameter keine
Beispiel ${refnumgen()}

regex, Suchen im String

Beschreibung Die dynamische Funktion regex mit zwei Parameter sucht in einem String anhand eines regulären Ausdrucks. Das Ergebnis ist entweder "true" oder "false"
Syntax ${regex(<pattern>, <string>)}
Parameter <pattern>: RegEx pattern. Kann ein anderer dynamischer Ausdruck sein. Die schließende geschweifte Klammer } muss durch @ ersetzt werden. Will man ein echtes @ im Pattern nutzen, muss es wie \@ maskiert werden.
<string>: String, in dem gesucht wird. Kann ein anderer dynamischer Ausdruck sein.
Beispiel ${regex(es[a-z],Tester)} ergibt "true".
${regex(\.txt$,${template(&(this.B3P_FILE_NAME))})} ergibt "false", wenn B3P_FILE_NAME = "ABC.xml" ist.
${regex(c{3@,abcccabc)} ergibt "true". Der reguläre Ausdruck ist eigentlich "c{3}".
${regex(.*\@.*, abc@gmail.com)} ergibt "true". @ wurde durch \ maskiert.

regex, Suchen nach einer Gruppe im String

Beschreibung Die dynamische Funktion regex mit drei Parameter sucht in einem String anhand eines regulären Ausdrucks und gibt die gefundene Gruppe zurück.
Syntax ${regex(<pattern>, <string>, <gruppennummer>)}
Parameter <pattern>: RegEx pattern. Kann ein anderer dynamischer Ausdruck sein. Siehe oben zur Maskierung des }-Zeichens.
<string>: String, in dem gesucht wird. Kann ein anderer dynamischer Ausdruck sein.
<gruppennummer>: Nummer der Regex-Gruppe, die zurück gegeben werden soll.
Beispiel ${regex((.*)MB, 200MB, 1)} ergibt "200".

regex, Definierte Werte zurückgeben, wenn ein regulärer Ausdruck zutrifft

Beschreibung Die dynamische Funktion regex mit fünf Parameter sucht in einem String anhand eines regulären Ausdrucks und gibt einen als Parameter definierten String zurück. Falls nichts gefunden wurde, wird der vierte Parameter zurückgegeben, sonst der fünfte.
Syntax ${regex(<pattern>, <string>, -1, <resultatWennFalse>, <resultatWennTrue>)}
Parameter <pattern>: RegEx pattern. Kann ein anderer dynamischer Ausdruck sein. Siehe oben zur Maskierung des }-Zeichens.
<string>: String, in dem gesucht wird. Kann ein anderer dynamischer Ausdruck sein.
-1: der dritte Parameter muss -1 sein.
<resultatWennFalse>: String, der zurückgegeben werden soll, falls mit dem regulären Ausdruck nichts gefunden wurde.
<resultatWennTrue>: String, der zurückgegeben werden soll, falls mit dem regulären Ausdruck etwas gefunden wurde.
Beispiel ${regex([0-9], abc, -1, keine Ziffern, mind. eine Ziffer)} ergibt "keine Ziffern".
${regex(^INVOIC_(.*)txt$, INVOIC_2.0.txt, -1, Dummy, OUT_Rechnung)} ergibt "OUT_Rechnung".

substring

Beschreibung Die dynamische Funktion substring schneidet aus einem bestimmten String einen definierten Bereich aus.
Syntax ${substring(<string>,<start>,<ende>)}
Parameter <string>: Der Wert der beschnitten werden soll
<start>Position ab der begonnen wird zu zählen
<ende>Position bis zu der gezählt wird
Beispiel ${substring(${edipath(RFF[1+0="CT"]+1+1)},0,2)}

context

Beschreibung Die dynamische Funktion context lässt den Wert durch den ContextParser verarbeiten. Dadurch werden alle dynamische Funktionen ausgeführt und deren Ergebnis in den Wert reingeschrieben.
Der aktuell einzige bekannte Anwendungsfall ist der folgende: Parameter mancher dynamischer Funktionen dürfen jeweils nur eine einzige dynamische Funktion enthalten. Wenn man mehrere Funktionen nutzen möchte, kann man sie mit der Funktion "context" umschließen.
Syntax ${context(<string>)}
Parameter <string>: Der Wert der ausgewertet werden soll
Beispiel ${anyof(${context(${var(A)}u${var(B)})}, false)}

xpathdom

Beschreibung Mit der dynamischen Funktion xpathdom können XPATH-Ausdrücke ausgewertet werden.
Syntax ${xpathdom(e)} or ${xpathdom(xPathExpression, sourceKey, useCache, saxonXpath)}
Parameter Die dynamische Funktion erwartet minimum ein xpath als Argument.
Beispiel ${xpathdom((/_-IDXGC_-UTILMD_02/IDOC/_-IDXGC_-E1_UNB_01/_-IDXGC_-E1_UNH_01/_-IDXGC_-E1_IDE_02/_-IDXGC_-E1_SEQ_01/_-IDXGC_-E1_CCI_03[CHARACTERISTIC_DESCR_CODE/text()='ZC0']/CHARACTERISTIC_DESCR_CODE/text())[1])} or ${if(${equals(S,${xpathdom(///*/ET_RETURN/item/TYPE/text(),JASONXML,false,true)})},ja, nein)}

B2B-MessageID

${template(&(this.B3P_OBJ_MESSAGE.messageId))}
View Me   Edit Me