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