Template Funktionen - Übersicht
In diesem Zusammenhang empfehlen wir auch folgende Handbuchseiten:
_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 und von der Funktion ${toNumber(val)} in eine Zahl umgewandelt werden kann.
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 "."). Mit anderen Worten: Diese Funktion gibt eine Zahl zurück, wenn ${isNumber(Wert)} true liefert.
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 |
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 |
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 |
stripHTMLTags(inputString)
Beschreibung
Diese Funktion entfernt HTML Tags aus Texten. Das wird häufig in Datenfeeds bei der Artikelbeschreibung benötigt. Bisher konnte man das ganze auch über Suchen/Ersetzen mit einem regulären Ausdruck erreichen. Diese Funktion macht das ganze einfacher und komfortabler.
Parameter | Typ | Beschreibung | Gültige Werte |
---|---|---|---|
inputString | STRING | String from which HTML Tags are to be removed |
Beispiel | Ausgabe |
---|---|
${stripHTMLTags("<h1>Content</h1><p>Text</p>")!} | ContentText |
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. "=") |
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 ";"). |
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. Optional: Verwenden Sie als Typ SINGLE, MULTIPLEVALUE oder MAP
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 |
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 kann das Datum als String oder Date-Objekt reingegeben werden z.B. '2015-08-06 10:39' oder .now
Parameter | Typ | Beschreibung | Gültige Werte |
---|---|---|---|
field | TEXT | MONTH DAY HOUR MINUTE SECOND MILLISECOND | |
amount | INTEGER |
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 |
isDateBetween(referenceDate, startDate, endDate)
Beschreibung
Prüft, ob ein Datum zwischen einem Start- und Enddatum liegt (einschließlich des Startzeitpunkts und ausschließlich des Endzeitpunkts [Start,Ende)). Diese Funktion gibt true oder false zurück.
Parameter | Typ | Beschreibung | Gültige Werte |
---|---|---|---|
referenceDate | TEXT | The referenceDate as a Date or String e.g. 2015-07-15 11:17 | |
startDate | TEXT | The start date as a Date or String e.g. 2015-07-15 11:17 | |
endDate | TEXT | The end date as a Date or String e.g. 2015-07-15 11:17 |
isDateBefore(referenceDate, otherDate)
Beschreibung
Prüft, ob ein Datum vor einem anderen Datum liegt (ausschließlich des Endzeitpunkts). Diese Funktion gibt true oder false zurück.
Parameter | Typ | Beschreibung | Gültige Werte |
---|---|---|---|
referenceDate | TEXT | The referenceDate as a Date or String e.g. 2015-07-15 11:17 | |
otherDate | TEXT | The other date to check if referenceDate is before as a Date or String e.g. 2015-07-15 11:17 |
isDateAfter(referenceDate, otherDate)
Beschreibung
Prüft, ob ein Datum nach einem anderen Datum liegt (ausschließlich des Startzeitpunkts). Diese Funktion gibt true oder false zurück.
Parameter | Typ | Beschreibung | Gültige Werte |
---|---|---|---|
referenceDate | TEXT | The referenceDate as a Date or String e.g. 2015-07-15 11:17 | |
otherDate | TEXT | The other date to check if referenceDate is after as a Date or String e.g. 2015-07-15 11:17 |
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 |
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 |
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 |
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] |
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 |
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 |
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) |
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) |
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) |
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) |
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 |
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 |
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. |
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 |
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. |
pagination(currentUrl, currentPage, totalCount, perPage)
Beschreibung
Helfer-Funktion, um die nächste URL für Pagination zu erzeugen. Das Ergebnis wird meist an die nextUrl() Funktion übergeben z.B. ${nextUrl( pagination(initialUrl, json["currentPage"]?number, json["totalCount"]?number, 500 ).plusOne("pageNumber")! )} Es gibt mehrere Funktionen, die verwendet werden können: plusOne() geht zur nächsten Seite, basierend auf der aktuellen Seite. Sie gibt einen leeren String zurück, wenn currentPage größer als die Gesamtzahl der möglichen Seiten ist, was als automatische Stopp-Bedingung dient. Die Funktion to() kann verwendet werden, um direkt zu einer bestimmten Seite zu gehen, indem der page-parametername überschrieben wird. Wenn die Seite eine Zahl ist, gibt diese Methode auch einen leeren String zurück, wenn die Seite größer ist als die Gesamtzahl der Seiten. Handelt es sich um eine Zeichenkette, wird immer die URL zurückgegeben, wobei der Page-Parametername ersetzt wird.
Einschränkungen (z.B. funktioniert nur in bestimmten Steps)
[APICall]
Parameter | Typ | Beschreibung | Gültige Werte |
---|---|---|---|
currentUrl | TEXT | The current url from which the next call is constructed. Typically populated with host or initialUrl. | |
currentPage | INTEGER | The current page number you are on (e.g. 1). | |
totalCount | INTEGER | The total number of items of the result which should be paginated (e.g. 1000). | |
perPage | INTEGER | The number of items per page (e.g. 100). From this and totalCount the total number of pages is calculated. |
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. |
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. |
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. |
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. |
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. |
emptyToNull(val)
Beschreibung
Gibt den übergebenen Wert zurück oder null, wenn er leer ist. Der Einsatz ist sinnvoll, wenn ein leeres Feld gleichbedeutend mit 'existiert nicht' ist. Diese Funktion ist z.B. in Verbindung mit der toJSON() Funktion praktisch, um leere Felder null zu setzen, und diese dann aus dem JSON zu entfernen.
Parameter | Typ | Beschreibung | Gültige Werte |
---|---|---|---|
val | OBJECT | The object to check for empty. Handles Strings, Numbers, Lists, Maps and Col objects from Spreadsheets. |
Beispiel | Ausgabe |
---|---|
${emptyToNull('')!'value is empty'} |
value is empty |
${emptyToNull('foo')} |
foo |
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]
newMap(map)
Beschreibung
Erzeugt ein Map Objekt. Bietet Methoden zum Hinzufügen, Setzen und Entfernen von Feldern. Wird oft in Verbindung mit ${toJSON()} genutzt. Der Grund für diese Funktion ist, dass Freemarker keine Manipulation von Maps erlaubt. Eine mit newMap() erstellte Map, kann allerdings verändert werden. Der Parameter unflatten='separator' versucht, die verschachtelte Map-Struktur anhand des angegebenen Trennzeichens bestmöglich zu ermitteln. Jedes Trennzeichen im Spaltennamen zeigt eine neue Ebene der erzeugten Map an. Wenn eine Liste als Wert angegeben wird, versucht unflatten jeden Listenwert einer neuen Map zuzuordnen (wie die Funktion zipMap()).
Parameter | Typ | Beschreibung | Gültige Werte |
---|---|---|---|
map | MAP | optional: initial map for initializing the map. Can be ommitted to create an empty map. |
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. |
toJSON(object, config)
Beschreibung
Erstellt einen JSON String aus einem Map oder List Objekt. Wird in Kombination mit der newMap() Funktion genutzt. Der Vorteil im Gegensatz zum manuellen JSON-'zusammenbauen' ist, dass das JSON valide und typsicher ist (d.h. kein Komma zu viel, kein Hochkomma an der falschen Stelle).
Parameter | Typ | Beschreibung | Gültige Werte |
---|---|---|---|
object | OBJECT | The object (map or list) to be converted to JSON. | |
config | MAP | Optional: Configuration map to control JSON output. pretty=true prints readable json. removeNull=true removes null values (to create smaller json output). removeEmpty=true removes all empty values, eg. empty strings, null values and empty arrays. |
zipMap(object, config)
Beschreibung
Erstellt eine Liste, bestehend aus mehreren Maps. Die Eingabe Map besteht aus keys, denen Listen aus Werten oder Einzelwerten zugeordnet sind. Ist die key Zuweisung der Eingabe Map eine Liste, werden die Werte Index basiert in jeweils neue Maps geschrieben. ist die key Zuweisung ein Einzelwert, wird dieser Wert konstant in jeder Map gesetzt.
Parameter | Typ | Beschreibung | Gültige Werte |
---|---|---|---|
object | MAP | A map of key assigned lists to generate an index based list of maps. By default missing key values will be set to null. | |
config | MAP | Optional: Configuration map to control the generated output. skipNull=["id", "key"] specifies required key values. This parameter accepts a list of strings (used in first parammeter map). If skipNull key values are null, the composed map will not be outputted. defaultNull="foo" or defaultNull={"id": 0, "key": "foo"} specifies the handling of missing values. A single value is added for every missing value beeing null, the same parameter as map defines key based null replacement values. The option skipEmpty skips adding empty values to the map. If all values are empty, an empty field is returned. |
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. |
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)
[SpreadsheetMapper]
Parameter | Typ | Beschreibung | Gültige Werte |
---|---|---|---|
key | TEXT | Name of the variable. | |
value | TEXT | Value of the variable. |
Beispiel | Ausgabe |
---|---|
${setVariable('key','value')} |