Hier finden sie eine Übersicht aller Funktionen, die Sie im Freemarker-Skripten in Synesty Studio benutzen können.
In diesem Zusammenhang empfehlen wir auch folgende Handbuchseiten:
Hinweise zu möglichen Namenskonflikten bei Verwendung von Funktionen anzeigen
Es kann vorkommen, dass z.B. eine Spalte im Mapper den gleichen Namen hat, wie eine der Funktionen unten.
In diesem Fall "gewinnt" die Spalte - und nicht die Funktion. Man spricht auch davon, dass die Spalte die Funktion überdeckt oder "shadowed".
Um die Funktion in so einem seltenen Fall trotzdem aufzurufen, kann man das Prefix
_syn.
dem Funktionsname voranstellen.
Beispiel:
Der Aufruf der Funktion
${isNumber("10.1")}
im Mapper würde z.B. nicht funktionieren, wenn es eine Quellspalte mit dem gleichen Namen "isNumber" gäbe.
Hier könnte man stattdessen
${_syn.isNumber("10.1")}
aufrufen, um die Funktion trotzdem aufzurufen.
isNumber(value)
Beschreibung
Prüft, ob ein Wert eine Zahl ist.
Parameter |
Typ |
Beschreibung |
Gültige Werte |
value |
TEXT |
|
|
Beispiel |
Ausgabe |
${isNumber("10.1")?c} |
true |
${isNumber("foo 10.1")?c} |
false |
<#if isNumber(5)>value ist a number<#else>value ist NOT a number</#if> |
value ist a number |
toNumber(value, default (optional), delimiter (optional, default is .))
Beschreibung
Prüft, ob ein Wert eine Zahl ist und gibt sie oder einen vordefinierten Wert aus. Ist der vordefinierten Wert numerisch, wird er als Nummer ausgegeben. Der Dezimaltrenner kann als 3. Parameter übergeben werden (Default ist ".").
Parameter |
Typ |
Beschreibung |
Gültige Werte |
value |
TEXT |
value to turn into a number |
|
default (optional) |
TEXT |
returned default if value is not numeric |
|
delimiter (optional, default is .) |
TEXT |
decimal delimiter |
|
Beispiel |
Ausgabe |
${toNumber("10 ")} |
10 |
${toNumber("10", "0")} |
10 |
${toNumber("foo", "0")} |
0 |
${toNumber("10000.100")} |
10000.1 |
${toNumber("1000,000.100", "0")} |
0 |
${toNumber("1000,000100", "0", ",")} |
1000.0001 |
random(MinVal, MaxVal)
Beschreibung
Erzeugt eine Zufallszahl. Die Zufallszahl ist Standard-mäßig vom Datentyp double, also eine Zahl mit Dezimalstellen.
Um eine Ganzzahl zu erhalten nutzen Sie das Freemarker-Built-in ?floor, um Abzurunden, und die Dezimalstellen wegzuschneiden.
Parameter |
Typ |
Beschreibung |
Gültige Werte |
MinVal |
INTEGER |
minimum value for random number |
|
MaxVal |
INTEGER |
maximum value for random number |
|
Beispiel |
Ausgabe |
${random(1,10)} |
random number between 1 and 10 |
${random()} |
random number between 0 and 1 (e.g. 0.567885) |
${random(100)} |
random number between 0 and 100 (e.g. 45.57743) |
${random(10,100)} |
random number between 10 and 100 (e.g. 11.35675) |
${random()?floor} |
random integer number between 0 and 1 |
${random(100)?floor} |
random integer number between 0 and 100 |
${random(10,100)?floor} |
random integer number between 10 and 100 |
position_of(string, searchStr, ordinal)
Beschreibung
Ermittelt die n-te Position eines Zeichens bzw. Teilstrings innerhalb einer Zeichenkette. Ein Beispiel mit anderen Worten: "An der wievielten Positionen kommt "-" (Bindestrich) zum zweiten mal vor?"
Parameter |
Typ |
Beschreibung |
Gültige Werte |
string |
STRING |
String, which the search pattern is applied to |
|
searchStr |
STRING |
the pattern to searched for |
|
ordinal |
INTEGER |
the number of occurence |
|
Beispiel |
Ausgabe |
Position of the 2nd occurence of "-" is ${position_of("1-2-3-4", "-",2)} |
Position of the 2nd occurence of "-" is 3 |
unescapeHTML(string)
Beschreibung
Ersetzt HTML Entitäten. Das Gegenstück zu escapeHTML.
Parameter |
Typ |
Beschreibung |
Gültige Werte |
string |
STRING |
The HTML String |
|
Beispiel |
Ausgabe |
${unescapeHTML("<")!} |
< |
escapeHTML(string)
Beschreibung
Ersetzt bestimmte Zeichen durch HTML Entitäten.
Parameter |
Typ |
Beschreibung |
Gültige Werte |
string |
STRING |
description |
|
Beispiel |
Ausgabe |
${escapeHTML('>')!} |
> |
now()
Beschreibung
Liefert die aktuelle Zeit als Timestamp in Millisekunden.
Beispiel |
Ausgabe |
${now()} |
1417185735245 |
eanChecksum(ean)
Beschreibung
Berechnet die 13. Stelle (Prüfsumme) einer EAN13.
Parameter |
Typ |
Beschreibung |
Gültige Werte |
ean |
TEXT |
the ean whose checksum is to be calculated. |
|
Beispiel |
Ausgabe |
${eanChecksum("978381582086")!} |
5 |
${"978381582086"+eanChecksum("978381582086")!} |
9783815820865 |
UUID()
Beschreibung
Erzeugt eine 36-stellige eineindeutige ID, eine sog. UUID.
Beispiel |
Ausgabe |
${UUID()!} |
z.B. 8e7f2a40-9f12-4d85-b805-ed6864c13fec |
parseField(string, fieldType, contentType, delimiter, keyValueDelimiter)
Beschreibung
Spezialfunktion, die hautpsächlich den Anwendungsfall hat, auf Attributwert zuzugreifen,
die wie folgt in einer einzelnen Spalte hinterlegt sind:
color=red;size=M
Häufig trifft man das bei Artikeldaten an, wo Variantenattribute wie Farbe und Größe
auf diese Art mit bestimmten Trennzeichen in einer Spalte stehen. Man könnte alternativ
mit der ?split Funktion den String zerlegen, aber parseField ist komfortabler. Wenn Sie nur den ersten Parameter angeben, dann wird MAP angenommen wie in parseField("A=0;B=4;C=DE", "MAP", "TEXT", ";", "=")
Parameter |
Typ |
Beschreibung |
Gültige Werte |
string |
TEXT |
The input string |
|
fieldType |
TEXT |
FieldType is a type, which defines whether a single value, multiple values or a map is used. Usually you want to use MAP. |
MAP MULTIPLEVALUE SINGLE |
contentType |
TEXT |
ContentType describes the kind of value, which is to be used. Usually you want to use TEXT, INTEGER or DECIMAL |
TEXT LONGTEXT INTEGER DECIMAL BOOLEAN HTML URL IMAGEURL |
delimiter |
TEXT |
the delimiter for the key-value pairs (e.g. ";") |
|
keyValueDelimiter |
TEXT |
The delimiter between key and value (e.g. "=") |
|
Beispiel |
Ausgabe |
<#assign myMap = parseField("A=0;B=4;C=DE")>${myMap.at("C")} |
DE |
<#assign myMap = parseField("A=0;B=4;C=DE", "MAP", "TEXT", ";", "=")>${myMap.at("C")} |
DE |
<#assign myMap = parseField("A=0;C=DE")>${myMap.at("A")} |
0 |
<#assign myMap = parseField("A=0;C=DE", "MAP", "TEXT", ";", "=")>${myMap.at("A")} |
0 |
parseMap(string, keyValueDelimiter, delimiter)
Beschreibung
Liest eine Zeichenkette wie 'A=0;B=4;C=DE' als Key-Value Map ein. Man kann auf die Werte mit Hilfe des Schlüssels zugreifen. Limitierung: Max. Anzahl Schlüssel: 1000, max. Schlüssel-Länge: 255 Zeichen, max. Wert-Länge: 10000 Zeichen.
Parameter |
Typ |
Beschreibung |
Gültige Werte |
string |
TEXT |
The input string |
|
keyValueDelimiter |
TEXT |
Optional: The delimiter between key and value (e.g. default is "="). |
|
delimiter |
TEXT |
Optional: The delimiter between the key-value pairs (e.g. default is ";"). |
|
Beispiel |
Ausgabe |
${parseMap("a=1;b=2").at("a")} |
1 |
${parseMap("a=1;b=2")["a"]} |
1 |
${parseMap("a=1;b=2").containsKey("A")?string} |
false |
${parseMap("a=1;b=2").containsKeyIgnoreCase("A")?string} |
true |
${parseMap("a=1;b=2").containsKeysOneOf("c","A")?string} |
false |
${parseMap("a=1;b=2").containsKeysOneOfIgnoreCase("c","A","d" )?string} |
true |
${parseMap("a=1;b=2").atFirst("c","a","d" )} |
1 |
${parseMap("a=1;b=2").atFirstIgnoreCase("c","A","d" )} |
1 |
${parseMap("a=1;b=2").getFirstKey("c","a","d" )} |
a |
${parseMap("a=1;b=2").atFirstIgnoreCase("c","A","d" )} |
1 |
${parseMap("a=1;b=2").containsKeysAll("a","B")?string} |
false |
${parseMap("a=1;b=2").containsKeysAllIgnoreCase("a","B")?string} |
true |
${parseMap("a=1;b=2","=")["a"]} |
1 |
${parseMap("a=1;b=2","=", ";")["a"]} |
1 |
<#list parseMap("a=1;b=2") as key, value>${key} : ${value}<#sep>,</#sep></#list> |
a : 1,b : 2 |
urlEncode(inputString, type, delimiter, keyValueDelimiter, paramName)
Beschreibung
Mit der Funktion urlEncode kann man Zeichenketten so aufbereiten, dass man sie in URLs benutzen kann. Sie ersetzt alle Sonderzeichen, die in URLs nicht erlaubt sind entsprechend.
Parameter |
Typ |
Beschreibung |
Gültige Werte |
inputString |
TEXT |
Input URL |
|
type |
TEXT |
The content type, which is to be used |
SINGLE MULTIPLEVALUE Map |
delimiter |
TEXT |
the delimiter used between entries |
|
keyValueDelimiter |
TEXT |
the delimiter between key and value (e.g. "=") |
|
paramName |
TEXT |
|
|
Beispiel |
Ausgabe |
${urlEncode("#sonderzeichen und leerzeichen!\"§%&//("!)!} |
%23sonderzeichen+und+leerzeichen%21%22%C2%A7%25%26%2F%2F%28 |
urlDecode(inputString, type, delimiter, keyValueDelimiter, paramName)
Beschreibung
decodiert URLs als einfachen string, zeichenseparierte Liste von Strings oder eine MAP von Schlüssel Wert Paaren. Das Gegenstück zu urlEncode
Parameter |
Typ |
Beschreibung |
Gültige Werte |
inputString |
TEXT |
the input String |
|
type |
TEXT |
Use SINGLE, MULTIPLEVALUE or MAP |
SINGLE MULTIPLEVALUE MAP |
delimiter |
TEXT |
delimiter between entries (e.g. ";") |
|
keyValueDelimiter |
TEXT |
delimiter between key and value (e.g."=") |
|
paramName |
TEXT |
|
|
Beispiel |
Ausgabe |
${urlDecode('%23sonderzeichen+und+leerzeichen')!} |
#sonderzeichen und leerzeichen |
datecalc(field, amount)
Beschreibung
Rechnet mit einem Datum, um Zeiten zu addieren oder subtrahieren. Man kann entweder das aktuelle Datum verwenden oder ein Referenzdatum reingeben.Die verwendbaren Felder sind MONTH, DAY, HOUR, MINUTE, SECOND, MILLISECOND.Hinweis: Bei Verwendung eines Referenzdatums muss das Datum als String reingegeben werden z.B. 2015-08-06 10:39Wenn das Datum nicht als STRING sondern als DATE vorliegt, muss man erst noch einen String daraus machen z.B. prop_lastruntime?datetime
Parameter |
Typ |
Beschreibung |
Gültige Werte |
field |
TEXT |
|
MONTH DAY HOUR MINUTE SECOND MILLISECOND |
amount |
INTEGER |
|
|
Beispiel |
Ausgabe |
${datecalc("2016-02-03", "DAY", 2)?date?string('yyyy-MM-dd')} |
2016-02-05 |
${datecalc("HOUR", 1)!?datetime} |
Add 1 hour to the current time. |
${datecalc("DAY", -2)!?datetime} |
Returns the date of the day before yesterday, related to now. |
${datecalc(prop_lastruntime?datetime, "DAY", -2)?string('yyyy-MM-dd HH:mm')}
|
Subtracts 2 days from the date of the last run. |
datediff(field)
Beschreibung
Berechnet die Differenz zwischen einem Start- und End-Datum. Die verwendbaren Felder sind YEAR, MONTH, DAY, HOUR, MINUTE, SECOND. Hinweis: Bei Verwendung eines Referenzdatums muss das Datum als String reingegeben werden z.B. 2015-08-06 10:39. Bei Angabe von "NOW" wird das aktuelle Datum verwendet.Wenn das Datum nicht als STRING sondern als DATE vorliegt, muss man erst noch einen String daraus machen z.B. prop_lastruntime?datetime
Parameter |
Typ |
Beschreibung |
Gültige Werte |
field |
TEXT |
|
YEAR MONTH DAY HOUR MINUTE SECOND |
Beispiel |
Ausgabe |
${datediff("2016-02-03", "2016-02-05", "DAY")} |
2 |
${datediff("2016-02-03", "NOW", "DAY")} |
positive number of days until now. |
${datediff("NOW", "2016-02-03", "DAY")} |
negative number of days from now till past. |
lastdayofmonth(referenceDate)
Beschreibung
Liefert ein Date Objekt des letzten Tag des Monats bezogen auf das übergebene Referenzdatum. Wird kein Referenzdatum angegeben, wird der aktuelle Zeitpunkt als Referenzdatum genutzt.
Parameter |
Typ |
Beschreibung |
Gültige Werte |
referenceDate |
TEXT |
|
|
Beispiel |
Ausgabe |
${lastdayofmonth("2016-02-03")?date} |
Feb 29, 2016 |
${lastdayofmonth("2016-02-15")?date} |
Feb 29, 2016 |
${lastdayofmonth("2016-02-03")?date?string("dd.MM.yyyy")} |
29.02.2016 |
${lastdayofmonth()?date} |
gets the last day of month based on today. |
firstdayofmonth(referenceDate)
Beschreibung
Liefert ein Date des ersten Tag des Monats bezogen auf das übergebene Referenzdatum. Wird kein Referenzdatum angegeben, wird der aktuelle Zeitpunkt als Referenzdatum genutzt.
Parameter |
Typ |
Beschreibung |
Gültige Werte |
referenceDate |
TEXT |
Formatted Date |
|
Beispiel |
Ausgabe |
${firstdayofmonth("2016-02-03")?date?string('yyyy-MM-dd')} |
2016-02-01 |
${firstdayofmonth("2016-02-15")?date} |
Feb 1, 2016 |
${firstdayofmonth("2016-02-03")?date?string("dd.MM.yyyy")} |
01.02.2016 |
${firstdayofmonth()?date} |
the first day of the current month |
min(list, delimiter(optional))
Beschreibung
Ermittelt das numerische Minimum einer Liste. Die Liste kann als Liste (z.B. [2,3,4]) übergeben werden oder als String mit einem Trenner wie z.B. Komma (z.B. "2,3,4").
Parameter |
Typ |
Beschreibung |
Gültige Werte |
list |
TEXT |
The list of values as list or separated string. |
|
delimiter(optional) |
TEXT |
optional delimiter |
|
Beispiel |
Ausgabe |
${min([2,3,1,4,5])!} |
1 |
${min("2,3,1,4,5")!} |
1 |
${min("2,3,1,4,5", ",")!} |
1 |
max(list, delimiter(optional))
Beschreibung
Ermittelt das numerische Maximum einer Liste. Die Liste kann als Liste (z.B. [2,3,4]) übergeben werden oder als String mit einem Trenner wie z.B. Komma (z.B. "2,3,4").
Parameter |
Typ |
Beschreibung |
Gültige Werte |
list |
TEXT |
The list of values as list or separated string. |
|
delimiter(optional) |
TEXT |
If no value is assigned comma (",") is assumed as default delimiter |
|
Beispiel |
Ausgabe |
${max([2,3,1,5,4])!} |
5 |
${max("2,3,1,5,4")!} |
5 |
${max("2,3,1,5,4", ",")!} |
5 |
deduplicate(list, delimiter(optional))
Beschreibung
Gibt eine deduplizierte Liste aus. Die Liste kann als Liste (z.B. [2,3,4]) übergeben werden oder als String mit einem Trenner wie z.B. Komma (z.B. "2,3,4").
Parameter |
Typ |
Beschreibung |
Gültige Werte |
list |
TEXT |
The list of values as list or separated string. |
|
delimiter(optional) |
TEXT |
optional delimiter |
|
Beispiel |
Ausgabe |
${deduplicate([2,3,2,1,1,4,5])!} |
[2,3,1,4,5] |
${deduplicate("2,3,2,1,1,4,5")!} |
[2,3,1,4,5] |
${deduplicate("2,3,2,1,1,4,5", ",")!} |
[2,3,1,4,5] |
intersection(first list, second list, delimiter(optional))
Beschreibung
Gibt die Schnittmenge (in beiden Listen enthaltene Elemente) zweier Listen aus. Die Listen können als Liste (z.B. [2,3,4]) übergeben werden oder als String mit einem Trenner wie z.B. Komma (z.B. "2,3,4").
Parameter |
Typ |
Beschreibung |
Gültige Werte |
first list |
TEXT |
The first list of values as list or separated string. |
|
second list |
TEXT |
The second list of values as list or separated string. |
|
delimiter(optional) |
TEXT |
optional delimiter |
|
Beispiel |
Ausgabe |
${intersection([2,3,2,1,1,4,5], [1,2,4,6,7])!} |
[2,1,4] |
${intersection("2,3,2,1,1,4,5", "1,2,4,6,7")!} |
[2,1,4] |
${intersection("2,3,2,1,1,4,5", "1,2,4,6,7", ",")!} |
[2,1,4] |
symmetricdifference(first list, second list, delimiter(optional))
Beschreibung
Gibt die Symmetrische Differenz (umgekehrte Schnittmenge) zweier Listen aus. Die Listen können als Liste (z.B. [2,3,4]) übergeben werden oder als String mit einem Trenner wie z.B. Komma (z.B. "2,3,4").
Parameter |
Typ |
Beschreibung |
Gültige Werte |
first list |
TEXT |
The first list of values as list or separated string. |
|
second list |
TEXT |
The second list of values as list or separated string. |
|
delimiter(optional) |
TEXT |
optional delimiter |
|
Beispiel |
Ausgabe |
${symmetricdifference([2,3,2,1,1,4,5], [1,2,4,6,7])!} |
[3,5,6,7] |
${symmetricdifference("2,3,2,1,1,4,5", "1,2,4,6,7")!} |
[3,5,6,7] |
${symmetricdifference("2,3,2,1,1,4,5", "1,2,4,6,7", ",")!} |
[3,5,6,7] |
difference(first list, second list, delimiter(optional))
Beschreibung
Gibt die Differenzmenge (erste Liste ohne in der zweite Liste enthaltenen Elemente) zweier Listen aus. Die Listen können als Liste (z.B. [2,3,4]) übergeben werden oder als String mit einem Trenner wie z.B. Komma (z.B. "2,3,4").
Parameter |
Typ |
Beschreibung |
Gültige Werte |
first list |
TEXT |
The first list of values as list or separated string. |
|
second list |
TEXT |
The second list of values as list or separated string. |
|
delimiter(optional) |
TEXT |
optional delimiter |
|
Beispiel |
Ausgabe |
${difference([2,3,2,1,1,4,5], [1,2,4,6,7])!} |
[3,5] |
${difference("2,3,2,1,1,4,5", "1,2,4,6,7")!} |
[3,5] |
${difference("2,3,2,1,1,4,5", "1,2,4,6,7", ",")!} |
[3,5] |
union(first list, second list, delimiter(optional))
Beschreibung
Gibt die Vereinigung (eindeutige Elemente beider Listen) zweier Listen aus. Die Listen können als Liste (z.B. [2,3,4]) übergeben werden oder als String mit einem Trenner wie z.B. Komma (z.B. "2,3,4").
Parameter |
Typ |
Beschreibung |
Gültige Werte |
first list |
TEXT |
The first list of values as list or separated string. |
|
second list |
TEXT |
The second list of values as list or separated string. |
|
delimiter(optional) |
TEXT |
optional delimiter |
|
Beispiel |
Ausgabe |
${union([2,3,2,1,1,4,5], [1,2,4,6,7])!} |
[2,3,1,4,5,6,7] |
${union("2,3,2,1,1,4,5", "1,2,4,6,7")!} |
[2,3,1,4,5,6,7] |
${union("2,3,2,1,1,4,5", "1,2,4,6,7", ",")!} |
[2,3,1,4,5,6,7] |
gross(Number, Percent)
Beschreibung
Errechnet zu einem Netto-Preis den Brutto-Preis zu einem gegebenem Steuersatz
Parameter |
Typ |
Beschreibung |
Gültige Werte |
Number |
DECIMAL |
|
|
Percent |
DECIMAL |
|
|
Beispiel |
Ausgabe |
${gross("84.03", "19.0")?string["#.00"]} |
100.00 |
net(Number, Percent)
Beschreibung
Errechnet zu einem Brutto-Preis den Netto-Preis zu einem gegebenem Steuersatz
Parameter |
Typ |
Beschreibung |
Gültige Werte |
Number |
DECIMAL |
|
|
Percent |
DECIMAL |
|
|
Beispiel |
Ausgabe |
${net("100.00", "19.0")?string["#.00"]} |
84.03 |
round(Number, Scale, RoundingMode, RoundingValue)
Beschreibung
Rundet einen numerischen Wert auf eine bestimmte Anzahlt Dezimalstellen und einem Rundungsmodus.
Parameter |
Typ |
Beschreibung |
Gültige Werte |
Number |
DECIMAL |
Value to be rounded |
|
Scale |
TEXT |
Rounding Mode |
CEILING FLOOR HALF_UP HALF_DOWN HALF_EVEN |
RoundingMode |
TEXT |
comma position after which is rounded |
|
RoundingValue |
DECIMAL |
Value, which is rounded to |
|
Beispiel |
Ausgabe |
<#assign price=99.8490>${round(price,2,"HALF_EVEN")} |
99.85 |
<#assign price=99.8490>${round(price,2,"HALF_EVEN", 0.75)} |
100.75 |
sha1(inputString)
Beschreibung
Berechnet den SHA1-Hash eines Wertes.
Parameter |
Typ |
Beschreibung |
Gültige Werte |
inputString |
STRING |
String to be encoded with SHA1 |
|
Beispiel |
Ausgabe |
${sha1("myvalue")!} |
ca5573497d2abb74de46d1935b07724a9ecb4114 |
sha256(inputString)
Beschreibung
Berechnet den SHA256-Hash eines Wertes
Parameter |
Typ |
Beschreibung |
Gültige Werte |
inputString |
STRING |
String to be encoded with SHA256 |
|
Beispiel |
Ausgabe |
${sha256("myvalue")!} |
6ad89927638a4f2594ae2572d0a96a49443a5e310a7cb36988977efce46c9a02 |
sha512(inputString)
Beschreibung
Berechnet den SHA512-Hash eines Wertes
Parameter |
Typ |
Beschreibung |
Gültige Werte |
inputString |
STRING |
String to be encoded with SHA512 |
|
Beispiel |
Ausgabe |
${sha512('myvalue')!} |
d64bcaecea366f07cfd2e1e411166d003ba812421b6ebe4e35bd66affd621896cef55ffd217ccdd5fca6159cf297c0ed748ed3f644f1c1cef33cfd43f5e914c1 |
md5(inputString)
Beschreibung
Berechnet die MD5-Checksumme / Hash eines Wertes.
Parameter |
Typ |
Beschreibung |
Gültige Werte |
inputString |
TEXT |
String to be MD5 decoded |
|
Beispiel |
Ausgabe |
${md5("myvalue")!} |
d724a7135ce7d2593c25fc5212d4125a |
hmacMD5(message, secret, outputType, messageEncoding, secretEncoding, outputEncoding)
Beschreibung
Berechnet den hmacMD5-Hash eines Wertes.
Parameter |
Typ |
Beschreibung |
Gültige Werte |
message |
TEXT |
message to be hashed |
|
secret |
TEXT |
the secret for the hmacMD5 hash |
|
outputType |
TEXT |
type of output: empty = UTF-8 String (default), base64 = Base64 encoded, hex - Lowercase Hexadecimal |
|
messageEncoding |
TEXT |
Charset of message (Default: UTF-8) |
|
secretEncoding |
TEXT |
Charset of secret (Default: UTF-8) |
|
outputEncoding |
TEXT |
Charset of output string (Default: UTF-8) |
|
Beispiel |
Ausgabe |
${hmacMD5("Wert", "mein_secret", "hex")!} |
7e48cf3c84e43c8fc0fec994e7738e23 |
${hmacMD5("Wert", "mein_secret", "base64")!} |
fkjPPITkPI/A/smU53OOIw== |
${hmacMD5("Wert", "meinsecretßäüö", "hex", "", "ISO-8859-1","")!} |
9199c688bc0a2eff51bfcca186d8a1f5 |
hmacSHA1(message, secret, outputType, messageEncoding, secretEncoding, outputEncoding)
Beschreibung
Berechnet den hmacSHA1-Hash eines Wertes.
Parameter |
Typ |
Beschreibung |
Gültige Werte |
message |
TEXT |
message to be hashed |
|
secret |
TEXT |
the secret for the hmacSHA1 hash |
|
outputType |
TEXT |
type of output: empty = UTF-8 String (default), base64 = Base64 encoded, hex - Lowercase Hexadecimal |
|
messageEncoding |
TEXT |
Charset of message (Default: UTF-8) |
|
secretEncoding |
TEXT |
Charset of secret (Default: UTF-8) |
|
outputEncoding |
TEXT |
Charset of output string (Default: UTF-8) |
|
Beispiel |
Ausgabe |
${hmacSHA1("Wert", "mein_secret", "hex")!} |
4d6333c9068edb842a0756b853e7f01bbe7d9820 |
${hmacSHA1("Wert", "mein_secret", "base64")!} |
TWMzyQaO24QqB1a4U+fwG759mCA= |
${hmacSHA1("Wert", "meinsecretßäüö", "base64", "", "ISO-8859-1")!} |
RGmh63ml8XTXvNz4olRIcTPXSsg= |
hmacSHA256(message, secret, outputType, messageEncoding, secretEncoding, outputEncoding)
Beschreibung
Berechnet den hmacSHA256-Hash eines Wertes.
Parameter |
Typ |
Beschreibung |
Gültige Werte |
message |
TEXT |
message to be hashed |
|
secret |
TEXT |
the secret for the hmacSHA256 hash |
|
outputType |
TEXT |
type of output: empty = UTF-8 String (default), base64 = Base64 encoded, hex - Lowercase Hexadecimal |
|
messageEncoding |
TEXT |
Charset of message (Default: UTF-8) |
|
secretEncoding |
TEXT |
Charset of secret (Default: UTF-8) |
|
outputEncoding |
TEXT |
Charset of output string (Default: UTF-8) |
|
Beispiel |
Ausgabe |
${hmacSHA256("Wert", "mein_secret", "hex")!} |
6028de046e8d3097425134ad6792545988b46f428b1694e1ee22c450ea2e9058 |
${hmacSHA256("Wert", "mein_secret", "base64")!} |
YCjeBG6NMJdCUTStZ5JUWYi0b0KLFpTh7iLEUOoukFg= |
${hmacSHA256("Wert", "meinsecretßäüö", "base64", "", "ISO-8859-1")!} |
Oaop7HN7SG91pbS2w7wh8PtXU6Oq3MzPjZbnKqXBZkk= |
hmacSHA512(message, secret, outputType, messageEncoding, secretEncoding, outputEncoding)
Beschreibung
Berechnet den hmacSHA512-Hash eines Wertes.
Parameter |
Typ |
Beschreibung |
Gültige Werte |
message |
TEXT |
message to be hashed |
|
secret |
TEXT |
the secret for the hmacSHA512 hash |
|
outputType |
TEXT |
type of output: empty = UTF-8 String (default), base64 = Base64 encoded, hex - Lowercase Hexadecimal |
|
messageEncoding |
TEXT |
Charset of message (Default: UTF-8) |
|
secretEncoding |
TEXT |
Charset of secret (Default: UTF-8) |
|
outputEncoding |
TEXT |
Charset of output string (Default: UTF-8) |
|
Beispiel |
Ausgabe |
${hmacSHA512("myvalue", "my_secret", "hex")!} |
117e26658253a28860ba54187c9036425d612aec96aeb845ef612f2ca7a45fbf89b0820f72be7b039d502c4996691b70917a694b0b4986e26c0b64cd0b9d2b5a |
${hmacSHA512("myvalue", "my_secret", "base64")!} |
EX4mZYJToohgulQYfJA2Ql1hKuyWrrhF72EvLKekX7+JsIIPcr57A51QLEmWaRtwkXppSwtJhuJsC2TNC50rWg== |
${hmacSHA512("myvalue", "my_secretßäüö", "base64", "", "ISO-8859-1")!} |
5z8IixcPeJkUalFH570iizQ5GwzD38ICzuVmAXMZDFtDNEROE6b74YkcGnUYyFhO5MgWo+yO7JH2quoSnwDy8A== |
encodeBase64(input, charset)
Beschreibung
Encoded einen String mit Base64. Standard Zeichensatz ist UTF-8
Parameter |
Typ |
Beschreibung |
Gültige Werte |
input |
TEXT |
Input String to be base64 encoded |
|
charset |
TEXT |
Charset of result. Default UTF-8 |
|
Beispiel |
Ausgabe |
${encodeBase64("Mein toller String")!} |
TWVpbiB0b2xsZXIgU3RyaW5n |
${encodeBase64("Mein toller String mit Großbuchstaben!", "ISO-8859-1")!} |
TWVpbiB0b2xsZXIgU3RyaW5nIG1pdCBHcm/fYnVjaHN0YWJlbiE= |
decodeBase64(input, charset)
Beschreibung
Decodiert einen Base64 string. Standard Zeichensatz ist UTF-8
Parameter |
Typ |
Beschreibung |
Gültige Werte |
input |
TEXT |
base64encoded string to be decoded |
|
charset |
TEXT |
Charset of string. Default UTF-8 |
|
Beispiel |
Ausgabe |
${decodeBase64("TWVpbiB0b2xsZXIgU3RyaW5n")!} |
Mein toller String |
${decodeBase64("TWVpbiB0b2xsZXIgU3RyaW5nIG1pdCBHcm/fYnVjaHN0YWJlbiE=","ISO-8859-1")!} |
Mein toller String mit Großbuchstaben! |
fileToBase64(file or filelist, filename)
Beschreibung
Wandelt eine Datei in einen BASE64 String. Kann auch mit FILELIST umgehen und eine einzelne Datei anhand des Names selektieren.
Parameter |
Typ |
Beschreibung |
Gültige Werte |
file or filelist |
FILE OR FILELIST |
The file to be encoded to base64. |
|
filename |
TEXT |
Optional: Filename of a file in the list, if first parameter is a FILELIST. |
|
Beispiel |
Ausgabe |
<#assign base64img = fileToBase64(FILEOBJECT)/><#if !base64img?startsWith('ERROR') >${base64img}</#if> |
The base64 String of the FILEOBJECT |
<#assign base64img = fileToBase64(FILELIST, "invoice2.pdf")/><#if !base64img?startsWith('ERROR') >${base64img}</#if> |
The base64 String of invoice2.pdf inside the FILELIST |
substring_word(String, Integer)
Beschreibung
kürzt einen anzugebenden String auf eine anzugebende Länge, vermeidet aber, dass Wörter mitten drin abgeschnitten werden. (Das Zeichen an dem gekürzt wird ist ein Leerzeichen)
Parameter |
Typ |
Beschreibung |
Gültige Werte |
String |
TEXT |
Input String |
|
Integer |
INTEGER |
Character Position, where the substring is cut. The last whole word before the character position is included in the substring. |
|
Beispiel |
Ausgabe |
${substring_word("abcd efgh", 6)!} |
abcd |
hextonumber(hex string)
Beschreibung
Wandelt eine Hexadecimalzahl in eine Ganzzahl um. Unterstützt die Schreibweise mit 0x / # und ohne.
Parameter |
Typ |
Beschreibung |
Gültige Werte |
hex string |
TEXT |
The hex string |
|
Beispiel |
Ausgabe |
${hextonumber("0x5b3f6601")} |
1530881537 |
${hextonumber("#5b3f6601")} |
1530881537 |
${hextonumber("5b3f6601")} |
1530881537 |
numbertohex(number)
Beschreibung
Wandelt eine Ganzzahl in eine Hexadezimalzahl um.
Parameter |
Typ |
Beschreibung |
Gültige Werte |
number |
INTEGER |
the integer number |
|
Beispiel |
Ausgabe |
${numbertohex("1530881537")} |
5b3f6601 |
getVariable(key, initialValue)
Beschreibung
Funktion, um den Wert einer Variable zu lesen, die durch setVariable(k,v) gesetzt wurde.
Einschränkungen (z.B. funktioniert nur in bestimmten Steps)
[APICall]
Parameter |
Typ |
Beschreibung |
Gültige Werte |
key |
TEXT |
Name of the variable. |
|
initialValue |
TEXT |
Optional: initial default value which should be returned if no value is found for the key. |
|
Beispiel |
Ausgabe |
${getVariable('mykey')} |
|
${getVariable('mykey', 'myInitialValue')} |
myInitialValue in case no value does exist for the key 'mykey'. Otherwise returns the actual value. |
incCounter(counterName, increment)
Beschreibung
Funktion, um eine Zählvariable (counter) hochzuzählen.
Einschränkungen (z.B. funktioniert nur in bestimmten Steps)
[APICall]
Parameter |
Typ |
Beschreibung |
Gültige Werte |
counterName |
TEXT |
Name of the counter. |
|
increment |
INTEGER |
Optional: value on how much to increment the counter. Default: 1 |
|
Beispiel |
Ausgabe |
${incCounter('myCounter')} |
1 |
${incCounter('myCounter',5)} |
5 |
nextUrl(url)
Beschreibung
Funktion, die am Ende des parsingTemplate platziert wird und die aufzurufende URL für den nächsten Call definiert. Meistens wird diese Funktion zusammen mit der pagination() Funktion benutzt.
Einschränkungen (z.B. funktioniert nur in bestimmten Steps)
[APICall]
Parameter |
Typ |
Beschreibung |
Gültige Werte |
url |
TEXT |
The URL to be called in the next call e,g. for pagination. |
|
Beispiel |
Ausgabe |
${nextUrl( pagination('http://api.example.com/products?page=1', 1, 1000, 100).plusOne('page')! )} |
would call http://api.example.com/products?page=2 - page parameter will be dynamically replaced. Url can contain more parameters too. |
${nextUrl( pagination(initialUrl, json["currentPage"]?number, json["totalCount"]?number, 100 ).plusOne("page")! )} |
would call http://api.example.com/products?page=2 but with dynamic parameters |
${nextUrl('http://api.examplecom/products?page=2')} |
would call http://api.example.com/products?page=2 |
setVariable(key, value)
Beschreibung
Funktion, um eine Variable zu setzen, die dann in den folgenden Spalten und Zeilen wieder verfügbar ist. Verwenden sie die getVariable Funktion um den Wert zu erhalten. Die Anzahl der Schlüssel(key) ist beschränkt auf 1000. Die maximale Länge der Schlüssel(key) ist 255 Zeichen and die maximale Länge der Werte(value) ist 10000 Zeichen.
Einschränkungen (z.B. funktioniert nur in bestimmten Steps)
[APICall]
Parameter |
Typ |
Beschreibung |
Gültige Werte |
key |
TEXT |
Name of the variable. |
|
value |
TEXT |
Value of the variable. |
|
Beispiel |
Ausgabe |
${setVariable('key','value')} |
|
urlcontentBase64(url, testIfImageExists)
Beschreibung
Wandelt eine URL (z.B. Bild-URL) in einen BASE64 String.
Einschränkungen (z.B. funktioniert nur in bestimmten Steps)
[SpreadsheetURLDownload,APICall,UrlDownload]
Parameter |
Typ |
Beschreibung |
Gültige Werte |
url |
TEXT |
The URL to be downloaded and encoded to base64. |
|
testIfImageExists |
BOOLEAN |
If true then a check if URL exists is executed (check if URL returns HTTP 200 with HEAD call). If false no check is performed. Default: true. |
|
Beispiel |
Ausgabe |
<#assign base64img = meta.urlcontentBase64('http://mywebsite.com/myimage.jpg', true)/><#if !base64img?startsWith('ERROR') >${base64img}</#if> |
The base64 String of the image-URL |
For batchSize > 1 (without the meta. prefix): <#assign base64img = urlcontentBase64('http://mywebsite.com/myimage.jpg', true)/><#if !base64img?startsWith('ERROR') >${base64img}</#if> |
The base64 String of the image-URL |
selectHTML(expression)
Beschreibung
Selektiert ein bestimmtes HTML-Fragment mit einem CSS-Selektor (ähnlich zu jQuery). Es gibt eine List sog. JSOUP-Objekte zurück (https://jsoup.org/cookbook/extracting-data/attributes-text-html), die das HTML-Fragment repräsentieren und womit man auf HTML-Tags oder Attribute zugreifen kann.
Einschränkungen (z.B. funktioniert nur in bestimmten Steps)
[HTMLParser,HTML2Spreadsheet]
Parameter |
Typ |
Beschreibung |
Gültige Werte |
expression |
TEXT |
The CSS-selector for the Elements. |
|
Beispiel |
Ausgabe |
<#assign nodes = selectHTML("a") /><#list nodes as n>${n.text()} : ${n.attr("href")!}</#list> |
Outputs the text and href-attribute of each link on the webpage. |
addColumns(row, node, prefix, options)
Beschreibung
Fügt alle Felder einer JSON Node als Spalten in einer Zeile des Ausgabe-Spreadsheets hinzu. Syntax: ${addColumns(row, node, prefix, options)}
Einschränkungen (z.B. funktioniert nur in bestimmten Steps)
[JSONReader,APICall]
Parameter |
Typ |
Beschreibung |
Gültige Werte |
row |
ROW |
Row of the target / output Spreadsheet where the columns should be added. |
|
node |
NODE |
The node of the JSON-structure from which the fields are extracted and added to the row. |
|
prefix |
TEXT |
Optional: a prefix which is added to each column name. |
|
options |
TEXT |
Optional: a hash / map containing configuration parameters which control how columns are added. See examples for syntax. |
|
Beispiel |
Ausgabe |
${addColumns(row, node, 'prefix')} |
add all fields of the node to the row and prefix all columns with 'prefix' |
${addColumns(row, node, 'prefix', {'columns':['sku','stock']})} |
only add two columns sku and stock and prefix them with prefix |
${addColumns(row, node, 'prefix', {'columns':['sku','stock'], 'mode':'exclude'})} |
add all fields 'except' sku and stock of node to the row and prefix all fields with prefix |
${addColumns(row, node, 'prefix', {'columns':['sku','stock'], 'mode':'exclude', 'skipEmptyValues':true})} |
only add two columns sku and stock, but only if their values are not empty. |
Arrays: ${addColumns(row, item['tax_lines'], 'tax_lines_')} |
if item['tax_lines'] is a JsonArray, then a column will be added for each field of the ArrayElement and the values will be concatenated by comma |
Arrays: ${addColumns(row, item['tax_lines'], 'tax_lines_', { 'delimiter': '|'})} |
if item['tax_lines'] is a JsonArray, then a column will be added for each field of the ArrayElement and the values will be concatenated by custom delimited pipe |
Arrays: ${addColumns(row, item['tax_lines'], 'tax_lines_', { 'delimiter': '|', 'columns':['price','rate']})} |
if item['tax_lines'] is a JsonArray, then a column will be added for each field of the ArrayElement and the values will be concatenated by custom delimited pipe. But only columns price and rate will be added. |
Arrays: ${addColumns(row, item['tax_lines'], 'tax_lines_', { 'delimiter': '|', 'columns':['price','rate'], 'mode':'exclude'})} |
if item['tax_lines'] is a JsonArray, then a column will be added for each field of the ArrayElement and the values will be concatenated by custom delimited pipe. But columns price and rate will be excluded. |
Arrays: ${addColumns(row, item['tax_lines'], 'tax_lines_', { 'delimiter': '|', 'textqualifier': ''})} |
if item['tax_lines'] is a JsonArray, then a column will be added for each field of the ArrayElement and the values will be concatenated by custom delimited pipe and each value is also surrounded by quotes (textqualifier) |
flattenJson(row, node, prefix)
Beschreibung
Fügt alle Felder einer JSON Node flach als Spalten in einer Zeile des Ausgabe-Spreadsheets hinzu. Syntax: ${flattenJson(row, node)}. Diese Funktion ist ähnlich wie addColumns(), aber einfacher, da Abflachung der json-Struktur automatisch erfolgt.
Einschränkungen (z.B. funktioniert nur in bestimmten Steps)
[JSONReader,APICall]
Parameter |
Typ |
Beschreibung |
Gültige Werte |
row |
ROW |
Row of the target / output Spreadsheet where the columns should be added. |
|
node |
NODE |
The node of the JSON-structure from which the fields are extracted and added to the row. |
|
prefix |
TEXT |
Optional: a prefix which is added to each column name. |
|
Beispiel |
Ausgabe |
${flattenJson(row, node)} |
converts the JSON node to a flat key value map and add all fields to the row |
${flattenJson(row, node, 'myprefix_')} |
add all fields of node to the row and prefix all columns with prefix 'myprefix_' |
addColumns(row, node, prefix, options)
Beschreibung
Fügt alle Felder einer XML Node als Spalten in einer Zeile des Ausgabe-Spreadsheets hinzu. Syntax: ${addColumns(row, node, prefix, options)}
Einschränkungen (z.B. funktioniert nur in bestimmten Steps)
[XMLReader]
Parameter |
Typ |
Beschreibung |
Gültige Werte |
row |
ROW |
Row of the target / output Spreadsheet where the columns should be added. |
|
node |
NODE |
The node of the XML-structure from which the fields are extracted and added to the row. |
|
prefix |
TEXT |
Optional: a prefix which is added to each column name. |
|
options |
TEXT |
Optional: a hash / map containing configuration parameters which control how columns are added. See examples for syntax. |
|
Beispiel |
Ausgabe |
${addColumns(row, node, 'prefix')} |
add all fields of node to the row and prefix all fields with prefix |
${addColumns(row, node, 'prefix', {'columns':['sku','stock']})} |
only add two columns sku and stock and prefix them with prefix |
${addColumns(row, node, 'prefix', {'columns':['sku','stock'], 'mode':'exclude'})} |
add all fields 'except' sku and stock of node to the row and prefix all fields with prefix |
${addColumns(row, node, 'prefix', {'columns':['sku','stock'], 'mode':'exclude', 'skipEmptyValues':true})} |
only add two columns sku and stock, but only if their values are not empty. |
attr(attributeName, xmlNode)
Beschreibung
Zugriff auf attribute von XML-Nodes. Syntax: ${attr("attributename", xmlnode)} Beispiel: <product category='myCat'> ${attr("category", xmlnode)} Ausgabe: myCat
Einschränkungen (z.B. funktioniert nur in bestimmten Steps)
[XML2Spreadsheet]
Parameter |
Typ |
Beschreibung |
Gültige Werte |
attributeName |
TEXT |
Name of the attribute. |
|
xmlNode |
NODE |
The XML-Node from which you want to access the attribute. |
|
Beispiel |
Ausgabe |
${attr('myAttribute', xmlnode)} |
Returns the value of the attribute with name myAttribute. |
Filter and join columns()
Beschreibung
Filtert Spalten mit einem Filter-Ausdruck (INCLUDE, INCLUDE_NOT_EMPTY oder EXCLUDE) und verbindet deren Werte mit einem Trenner. INCLUDE fügt alle Spalten ein, die auf den Filterausdruck passen. INCLUDE_NOT_EMPTY ebenso, jedoch nur für nicht-leere Spalten. EXCLUDE ist das Gegenteil und schließt alle Spalten aus, die auf den Filter passen. Das erste Beispiel verbindet die Spalte 'name' und alle Spalten die mit dem Prefix 'price' beginnen (z.B. price1, price2 usw.).
Einschränkungen (z.B. funktioniert nur in bestimmten Steps)
[SpreadsheetMapper]
Beispiel |
Ausgabe |
${row.getCols().filter("name,price*","INCLUDE").join(",")} |
Super Shoe XI;129.99 |
${row.getCols().filter("name,image*","INCLUDE_NOT_EMPTY").join(",")} |
Name and all image-columns which contain a image-url (are not empty). |
${row.cols.filter("price,name,image", "EXCLUDE").join(";")} |
All columns except price, name and image |
Join all columns by a delimiter()
Beschreibung
Verbindet alle Spalten mit einem Trenner. Das Beispiel verbindet alle Spalten mit einem Komma.
Einschränkungen (z.B. funktioniert nur in bestimmten Steps)
[SpreadsheetMapper]
Beispiel |
Ausgabe |
${row.getCols().join(',')} |
|
parseJSON(json)
Beschreibung
Liest einen Zeichenkette (String) in ein JSON Model.
Parameter |
Typ |
Beschreibung |
Gültige Werte |
json |
TEXT |
The actual JSON String to be parsed. |
|
Beispiel |
Ausgabe |
${parseJSON("{'firstname': 'Max'}")['firstname']!} |
Max |
<#list parseJSON("[{'firstname': 'Max'}, {'firstname': 'Moritz'}]") as person>${person['firstname']}<#sep>,<#sep></#list> |
Max,Moritz |
${parseJSON("[{'firstname': 'Max'}, {'firstname': 'Moritz'}]")?size} |
2 |
${parseJSON("[{'firstname': 'Max'}, {'firstname': 'Moritz'}]")[1]['firstname']} |
Moritz |
parseXml(xml)
Beschreibung
Liest einen XML-Zeichenkette (String) in ein XML Model.
Parameter |
Typ |
Beschreibung |
Gültige Werte |
xml |
TEXT |
The actual XML String to be parsed. |
|
Beispiel |
Ausgabe |
${parseXml('<firstname>Max</firstname>')['firstname']!} |
Max |
getVariable(key, initialValue)
Beschreibung
Funktion, um den Wert einer Variable zu lesen, die durch setVariable(k,v) gesetzt wurde.
Einschränkungen (z.B. funktioniert nur in bestimmten Steps)
[SpreadsheetMapper]
Parameter |
Typ |
Beschreibung |
Gültige Werte |
key |
TEXT |
Name of the variable. |
|
initialValue |
TEXT |
Optional: initial default value which should be returned if no value is found for the key. |
|
Beispiel |
Ausgabe |
${getVariable('mykey')} |
value |
${getVariable('mykey', 'myInitialValue')} |
myInitialValue in case no value does exist for the key 'mykey'. Otherwise returns the actual value. |