![]() |
HinweisBeachten Sie, dass bei der
direkten Verwendung von F-Script Befehlen mit alphanumerischem Inhalt
(z.B. «NAME» oder «VORNAME»), diese Attribute jeweils in " " gesetzt
werden müssen. Beispiel: «(length("«NAME»"))\E».
Bei F-Script
Befehlen welche ein Datum oder eine Zahl zurückgeben, ist dies nicht
nötig.
|
Code | Name | Info | ||
abs
|
abs(integer/number)
|
Gibt den absoluten Wert einer Zahl zurück. Negative
Zahlen werden in positive Zahlen umgewandelt.
«(abs(-5.72))\E» «X(Number=-123456.50)» «(abs(Number))\E» |
||
append
|
append(string1,string2)
|
Verbindet zwei Strings miteinander.
«X(ValueA=Zahlungsziel: )» «X(ValueB=30 Tage netto)» # «(append(ValueA,ValueB))\E» |
||
ascii |
ascii(string)
|
Gibt den Code-Wert des ersten Zeichens eines Strings
zurück.
Beispiel: Es sollen alle Adressen ausgeben werden,
bei denen der Ort mit 'A' anfängt. Um das zu erreichen, können Sie
dem Service GetBo folgenden Filter mitgeben: ascii(Addr.City) =
65.
«X(Charater=@)» «(ascii(Charater))\E» |
||
asDate
|
asDate(string)
|
Wandelt den übergebenen Wert (string) in ein Datum um,
sofern dies möglich ist. Ist eine Umwandlung nicht möglich, wird
nichts zurückgegeben. Repräsentiert der String kein korrektes
Datum, wird nichts zurückgegeben.
«X(Value=01.01.2018)» «(asDate(Value))\E» |
||
asInteger
|
asInteger(val)
|
Wandelt den übergebenen Wert (val) in einen Integer um,
sofern dies möglich ist. Ist eine Umwandlung nicht möglich, wird 0
zurückgegeben. Repräsentiert der String keine Zahl, wird 0
zurückgegeben.
«X(Value=123456)» «(asInteger(Value))\E» |
||
asNumber
|
asNumber(val)
|
Wandelt den übergebenen Wert (val) in eine Zahl (Number)
um, sofern dies möglich ist. Ist eine Umwandlung nicht möglich,
wird 0.0 zurückgegeben. Repräsentiert der String keine Zahl, wird
0.0 zurückgegeben.
«X(Value=123456.50)» «(asNumber(Value))\E» |
||
center(string,length)
|
Gibt Attribute oder fixe Werte zentriert aus.
Die
Ausgabe erfolgt in der vorgegebenen Länge. Dabei wird der
auszugebende String innerhalb der gewünschten Ausgabelänge
zentriert.
|
|||
character(byte)
|
Wandelt einen Code-Wert in ein Zeichen
um.
Beispiel: Der Ausdruck character(241) liefert das
Zeichen ±.
«X(ByteNumber=64)» «(character(ByteNumber))\E» |
|||
computeMd5
|
computeMd5(string)
|
Liefert MD5-Hash für den übergebenen Input-String resp.
dessen Bytes in UTF-8-Codierung.
«nX(MemberNo=1234567)» «nX(UserName=TestUser_01)» «nX(Password=PW4$DirectLogin)» «nX(Date=21112016)» # Signature: md5([Mitgliedsnummer]_base64([Benutzername])_[Passwort]_[Datum]) «nX(Signature=)» «(assign(Signature, computeMd5(MemberNo + "_" + encodeBase64(UserName) + "_" + Password + "_" + Date)))\E» # AuthenticatonCode: urlEncode(base64([Mitgliedsnummer]_base64([Benutzername])_[Signatur])) «nX(AuthenticatonCode=)» «(assign(AuthenticatonCode, escapeUriData(encodeBase64(MemberNo + "_" + encodeBase64(UserName) + "_" + Signature))))\E» |
||
date
|
date(dd.mm.yyyy)
|
Wandelt einen String in ein Datum um.
«X(Value=01.01.2018)» «(date(Value))\E» Beispiel: Es sollen alle Adressen ausgegeben
werden, die im Jahr 2014 erstellt wurden. Um das zu erreichen,
können Sie dem Service GetBo folgenden Filter mitgeben:
Addr.Created >= date(01.01.2014) and Addr.Created <=
date(31.12.2014).
|
||
dateInTz
|
dateInTz("targetTimezoneCd" [,timestamp]
[,"sourceTimezoneCd"])
|
Zeitstempel in eine andere Zeitzone umrechnen. Es wird
nur das Datum zurückgegeben. Wird kein Zeitstempel mitgegeben,
wird der aktuelle Zeitpunkt verwendet. Wird keine Quell-Zeitzone
mitgegeben, wird Western Europe Standard Time (Schweizer
Zeit; Code-Value WESTp01_DS) verwendet.
|
||
timeInTz
|
timeInTz("targetTimezoneCd" [,timestamp]
[,"sourceTimezoneCd"])
|
Zeitstempel in eine andere Zeitzone umrechnen. Es wird
nur die Zeit zurückgegeben. Wird kein Zeitstempel mitgegeben, wird
der aktuelle Zeitpunkt verwendet. Wird keine Quell-Zeitzone
mitgegeben, wird Western Europe Standard Time (Schweizer
Zeit; Code-Value WESTp01_DS) verwendet.
|
||
timestampInTz
|
timestampInTz("targetTimezoneCd" [,timestamp]
[,"sourceTimezoneCd"])
|
Zeitstempel in andere Zeitzone umrechnen. Wird kein
Zeitstempel mitgegeben, wird der aktuelle Zeitpunkt verwendet.
Wird keine Quell-Zeitzone mitgegeben, wird Western Europe
Standard Time (Schweizer Zeit; Code-Value
WESTp01_DS) verwendet.
|
||
dateStrInTz
|
dateStrInTz("targetTimezoneCd" [,timestamp]
[,"sourceTimezoneCd"] [,"format"])
|
Analog dateInTz() plus Formatierung als String.
Formate gemäss dateToStr(). Wird kein Format übergeben,
wird das Default-Format "dd.MM.yyyy" angewendet.
|
||
timeStrInTz
|
timeStrInTz("targetTimezoneCd" [,timestamp]
[,"sourceTimezoneCd"] [,"format"])
|
Analog timeInTz() plus Formatierung als String.
Formate gemäss timeToStr() (siehe hierzu APS-5039). Wird
kein Format übergeben, wird das Default-Format "HH:mm:ss"
angewendet.
|
||
timestampStrInTz
|
timestampStrInTz("targetTimezoneCd" [,timestamp]
[,"sourceTimezoneCd"] [,"format"])
|
Analog timestampInTz() plus Formatierung als
String. Formate gemäss timestampToStr() (siehe hierzu
APS-5039). Wird kein Format übergeben, wird das Default-Format
"dd.MM.yyyy HH:mm:ss" angewendet.
|
||
|
||||
today
|
today()
|
Aktuelles Datum.
|
||
now
|
now()
|
Aktueller Zeitstempel.
|
||
time
|
time(value)
|
Zeit aufgrund eines übergebenen Wertes.
|
||
timestamp
|
timestamp(value)
|
Zeitstempel aufgrund eines übergebenen
Wertes.
|
||
asTime
|
asTime(value)
|
Cast tolerant. Liefert 00:00:00 wenn keine Zeit erkannt
werden kann.
|
||
asTimestamp
|
asTimestamp(value)
|
Cast tolerant. Liefert 01.01.0001 00:00:00 wenn kein
Zeitstempel erkannt werden kann.
|
||
isTime
|
isTime(value)
|
Prüfung ob Cast möglich ist.
|
||
isTimestamp
|
isTimestamp(value)
|
Prüfung ob Cast möglich ist.
|
||
dateToStr
|
dateToStr(value [,"format"])
|
Datum formatieren. Default-Format:
"dd.MM.yyyy"
Mögliche Token:
Mögliche Delimiter:
|
||
timeToStr
|
timeToStr(value [,"format"])
|
Zeit (Time) formatieren. Default-Format:
"HH:mm:ss"
Mögliche Token:
Mögliche Delimiter:
|
||
timestampToStr
|
timestampToStr(value [,"format"])
|
Zeitstempel (Timestamp) formatieren. Default-format:
"dd.MM.yyyy HH:mm:ss"
Mögliche Token:
Mögliche Delimiter:
|
||
dayOfDate
|
dayOfDate(date)
|
Liefert den Tag eines Datums (als Nummer).
|
||
monthOfDate
|
monthOfDate(date)
|
Liefert den Monat eines Datums (als Nummer).
|
||
yearOfDate
|
yearOfDate(date)
|
Liefert das Jahr eines Datums (als Nummer).
|
||
dateAdd
|
dateAdd(dateOrTimestamp, count
[,"datePartCd"])
|
Hinzurechnen von Datumswerten (z.B. Anzahl Tage oder
Wochen) zu einem Datum.
|
||
encodeBase64
|
encodeBase64(string)
|
Codiert den übergebenen Input-String resp. dessen Bytes
in UTF-8-Codierung als Base64-codierten String.
«X(Value=Hello World!)» «(encodeBase64(Value))\E» |
||
decodeBase64
|
decodeBase64(string)
|
Decodiert einen Base64-codierten String und gibt die
resultierenden Bytes als UTF-8 String zurück.
«X(base64String =SGVsbG8gV29ybGQh)» «(decodeBase64(base64String))\E» |
||
escapeUriData
|
escapeUriData(string)
|
Codiert den übergebenen Input-String als URI-Data (=
Daten-Bestandteil einer URL).
«X(Value=Hello World!)» «(escapeUriData(Value))\E» |
||
unescapeUriData
|
unescapeUriData(string)
|
Decodiert den übergebenen Input-String als URI-Data (=
Daten-Bestandteil einer URL).
«X(UriData=Hello%20World!)» «(unescapeUriData(UriData))\E» |
||
guid
|
guid()
|
Liefert eine eindeutige ID (als String) der folgenden
Art: ECE3AA77-A248-4D63-9A65-7D95B7D00CE3
«(guid())\E» |
||
if(expr,valTrue,valFalse)
|
Klassischer if-then-else - Ausdruck. Trifft die
Bedingung (expr) zu, so wird valTrue zurückgegeben, sonst
valFalse.
Als Bedingung kann bei expr auch eine Zahl
(0=false) oder ein String (leer=false) angegeben
werden.
«X(ValueA=10)» «X(ValueB=20)» «(if(ValueA contains ValueB,"true","false"))\E» |
|||
insert(insString,string,at)
|
Fügt einen String an einer bestimmten Position in einen
andern ein.
Beispiel: Umwandeln der Hauptstadt der Schweiz
in die Hauptstadt Deutschlands.
«X(Value=Bern)» «X(SubString=li)» «(insert(SubString,Value,4))\E» |
|||
integer
|
integer(val)
|
Wandelt einen String, ein Datum oder eine Realzahl
(durch Abschneiden der Nachkommastellen) in eine Ganzzahl
um.
«X(A=36.758)» # «SYS(MSG INFO «(integer(«X(A)»))\E»)» «X(A=21.08.2014)» # «SYS(MSG INFO «(integer("«X(A)»"))\E»)» |
||
isDate
|
isDate(val)
|
Prüft ob der übergebene Wert (val) ein korrektes Datum
ist oder in ein korrekter Datum umgewandelt werden kann. Rückgabe:
1/0 bzw. true/false.
«X(Value=01.01.2018)» «(isDate(Value))\E» |
||
isInteger
|
isInteger(val)
|
Prüft ob der übergebene Wert (val) ein Integer ist oder
in einen Integer umgewandelt werden kann. Rückgabe: 1/0 bzw.
true/false.
«X(Value=123456)» «(isInteger(Value))\E» |
||
isNumber
|
isNumber(val)
|
Prüft ob der übergebene Wert (val) eine Zahl (Number)
ist oder in eine Zahl (Number) umgewandelt werden kann. Rückgabe:
1/0 bzw. true/false.
«X(Value=123456.50)» «(isNumber(Value))\E» |
||
left(string,length)
|
Kürzt einen String auf die gewünschte Länge. Siehe auch
pad.
Beispiel: left('Zürich',4) ergibt
Züri.
«X(Value=Zürich)» «(left(Value,4))\E» |
|||
length(string)
|
Gibt die Länge eines Strings zurück.
«X(String=Hello World!)» «(length(String))\E» |
|||
lowercase(string)
|
Wandelt einen String in Kleinbuchstaben
um.
«X(String=Hello World! This is Mars calling...)» «(lowercase(String))\E» |
|||
ltrim(string)
|
Entfernt eventuell vorhandene führende
Leerzeichen.
«X(Value=Hello World! )» «(ltrim(Value))\E» |
|||
mid(string,length,at)
|
Gibt einen Substring von string mit der Länge
length ab der Position at zurück.
Beispiel:
mid('Spanien',3,4) ergibt nie.
«X(Value=Spanien)» «(mid(Value,3,4))\E» |
|||
mod(intDividend,intDivisor)
|
Gibt die Restmenge einer Division (Modulo)
aus.
Beispiel: mod(17:5) = 2
«X(IntDividend=17)» «X(IntDivisor=5)» «(mod(IntDividend,IntDivisor))\E» |
|||
not
|
not(boolean)
|
Kehrt den Wert eines Boolean um. Das Argument
boolean darf dabei auch ein String oder ein Integer sein.
Dabei ergeben ein nicht leerer String bzw. ein Integer ungleich 0
den Wert true.
«X(A=0)» # Ausgabe: 1 «SYS(MSG INFO «(not(«X(A)»))\E»)» «X(A=1)» # Ausgabe: 0 «SYS(MSG INFO «(not(«X(A)»))\E»)» «X(ValueA=Hello World!)» «X(ValueB=Hello Mars!)» «(not(ValueA = ValueB))\E» |
||
number
|
number(var)
|
Wandelt die Variable var in eine Zahl mit maximal 14
Vor- und 8 Nachkommastellen um.
«X(A=422.85)» # «SYS(MSG INFO «(number(«X(A)»))\E»)» |
||
overstrike(newStr,oldStr,at)
|
Überschreibt einen String oldStr mit einem neuen
String newStr ab einer bestimmten Position
at.
Beispiel: Um die Hauptstadt Österreichs in die
Hauptstadt der Schweiz zu verwandeln, verwenden Sie folgenden
Ausdruck: 'overstrike('Ber','Wien',1)'.
|
|||
pad
|
pad(string,length)
|
Gibt einen String in einer fixen Länge aus.
Der
String wird dabei entweder rechts abgeschnitten oder mit
Leerzeichen ergänzt. Siehe auch left.
«X(A=Art-Nr. W-100 ZL)» # «SYS(MSG INFO ***«(pad("«X(A)»",23))\E»***)» ![]() |
||
pos
|
pos(subString,mainString)
|
Gibt die Position des ersten Zeichens der ersten
Übereinstimmung von subString in mainString zurück.
Gibt es keine Übereinstimmung, wird der Wert 0
zurückgegeben.
«X(A=30 Tage netto)» «X(B=netto)» # Ausgabe: 9 - "netto" steht ab Stelle 9 bei "30 Tage netto" «SYS(MSG INFO «(pos("«X(B)»","«X(A)»"))\E»)» «X(Value=Hello World! This is Mars calling...)» «X(SubString=Mars)» «(pos(SubString,Value))\E» |
||
random(limit)
|
Gibt eine zufällige Ganzzahl von 0 bis limit
minus 1 zurück.
«X(Integer=100)» «(random(Integer))\E» |
|||
regEx
|
regEx(string,pattern)
|
Bei Abfragen (GetBo, Filter und virtuelle Attribute)
sowie bei Wertzuweisungen (SaveBo) können Sie regular expressions
verwenden.
regEx(string,pattern) - Case sensitive
Prüfung.
«X(Value=10.00)» «X(RegexPattern=^\d*.{0,1}\d+$)» «(regEx(Value,RegexPattern))\E» |
||
regExCi
|
regExCi(string,pattern)
|
Bei Abfragen (GetBo, Filter und virtuelle Attribute)
sowie bei Wertzuweisungen (SaveBo) können Sie regular expressions
verwenden.
regExCi(string,pattern) - Case insensitive
Prüfung.
«X(Value=hELlo WoRlD)» «X(RegexPattern=world)» «(regExCi(Value,RegexPattern))\E» # Zu prüfender Wert: «X(myString=105.299999)» # # regular expression mit Pattern für "isDigit" «nz~(«(regExCi(myString,"^(([0-9]*)|(([0-9]*)\.([0-9]*)))$"))\E»)\I»«SYS(MSG CRIT '«X(myString)»' ist kein gültiger Wert!)» # Pattern für das Prüfen eines gültigen Verzeichnis-Namens «X(Regex.Pattern=^([a-zA-Z0-9][^*/><?\|:]*)$)» # «nz~(«(regExCi(myString,Regex.Pattern))\E»)\I»«SYS(MSG CRIT '«X(myString)»' ist kein gültiges Verzeichnis!)» GetBo-Request
(Ersetzen von « und »)
Biz.GetBo SalDocCondText 12996 ne 1 0 1 SalDocCondText.Number,SalDocCondText.Name,SalDocCondText.Text CleanText=if(regExCi(SalDocCondText.Text,"[(uc_char(171)uc_char(187))]")=0,SalDocCondText.Text,replaces(uc_char(171),replaces(uc_char(187),SalDocCondText.Text,">"),"<")) Diverse
weitere Beispiele für "regular expression
Patterns"
Integer ^-{0,1}\d+$ Positive Integers ^\d+$ Negative Integers ^-\d+$ Number ^-{0,1}\d*.{0,1}\d+$ Positive Number ^\d*.{0,1}\d+$ Negative Number ^-\d*.{0,1}\d+$ only lowercase characters (a-z and not empty) ^[a-z]{1,}$ ^[a-zA-Z]{1,}$ Check for specific unicode Character («») [\u00AB\u00BB]{1,} Prüfen von Dateinamen auf ungültige Zeichen ^[\w\-. ]+\.(?i)(pdf|pcl)$ Hinweis: (?i) bedeutet: Ignore Case. Beispiele äöüàéèÄÖÜ.pdf >> OK aaabc.p >> NOK abc<DDD.pdf >> NOK abcäöü.P >> NOK ÄÖ Üabc.pdf >> OK |
||
remove(string,at,length)
|
Löscht in einem String ab einer bestimmten Position
at eine Anzahl Zeichen length.
Beispiel:
Umwandeln der Hauptstadt Deutschlands in die Hauptstadt der
Schweiz.
«X(Value=Berlin)» «(remove(Value,4,2))\E» |
|||
repeat(string,count)
|
Fügt einen String mehrmals (count) an sich selbst
an.
«X(Value=Hello World! )» «(repeat(Value,3))\E» |
|||
replace(oldSub,string,newSub)
|
Ersetzt einen Substring OldSubString in einem
String Value durch einen neuen Substring
NewSubString.
«X(Value=Hello %%THEPLANET%%! This is Mars calling...)» «X(OldSubString=%%THEPLANET%%)» «X(NewSubString=World)» «(replace(OldSubString,Value,NewSubString))\E» |
|||
replaces(oldSub,string,newSub)
|
Ersetzt alle Substrings OldSubString in einem
String Value durch neue Substrings
NewSubString.
«X(Value=Hello %%THEPLANET%%! This is another %%THEPLANET%% calling...)» «X(OldSubString=%%THEPLANET%%)» «X(NewSubString=World)» «(replaces(OldSubString,Value,NewSubString))\E» |
|||
right(string,length)
|
Gibt eine bestimmte Anzahl Zeichen length von
rechts aus.
Beispiel: Verwandeln von Baden-Baden in
Baden.
«X(Value=Baden-Baden)» «(right(Value,5))\E» |
|||
round
|
round(number)
round(number,roundTo)
round(number,roundTo,roundMode)
|
Rundet eine Zahl mit Nachkommastellen number auf
eine Ganzzahl oder auf Nachkommastellen gemäss
Vorgabe.
«X(A=522.443)» # Keine Vorgabe - Das bedeutet "runden auf Ganzzahl" - Ausgabe: 522 «SYS(MSG INFO «(round(«X(A)»))\E»)» «X(A=688.27)» # Vorgabe: ,0 - Das bedeutet "nicht runden" - Ausgabe: 688.27 «SYS(MSG INFO «(round(«X(A)»,0))\E»)» «X(A=688.27)» # Vorgabe: ,0.05 - Das bedeutet "runden auf 0.05" - Ausgabe: 688.25 «SYS(MSG INFO «(round(«X(A)»,0.05))\E»)» Runden mit Vorgabe des Rundungs-Modus roundMode.
Mögliche Werte:
# Runden mit Vorgabe des Rundungs-Modus (roundMode) «X(A=125.21)» # 125.21 wird aufgerundet - Ausgabe: 125.25 Aufrunden: «(round(«X(A)»,0.05,1))\E» «X(A=125.23)» # 125.23 wird normal gerundet - Ausgabe: 125.25 Normal Runden: «(round(«X(A)»,0.05,0))\E» «X(A=125.49)» # 125.49 wird abgerundet - Ausgabe: 125.45 Abrunden: «(round(«X(A)»,0.05,-1))\E» |
||
rtrim(string)
|
Entfernt eventuell vorhandene nachfolgende
Leerzeichen.
«X(Value=Hello World! )» «(rtrim(Value))\E» |
|||
set_contains
|
set_contains(valueSet, valueToSearch)
|
Zeigt an, ob ein Wert enthalten ist (kann auch in einem
Query oder GetBo verwendet werden).
«(set_contains("A" +DELIM+ "B" +DELIM+ "C" +DELIM+ "D","A"))\E» # Ergibt den Wert 1 (true) «(set_contains("A" +DELIM+ "B" +DELIM+ "C" +DELIM+ "D","X"))\E» # Ergibt den Wert 0 (false) |
||
set_add
|
set_add(valueSet, valueToAdd)
|
Fügt einen Wert zur Liste hinzu und gibt die Liste
zurück.
«(set_add("A" +DELIM+ "B" +DELIM+ "C" +DELIM+ "D","E"))\E» # Liefert: A B C D E getrennt durch Ogham Space Mark «(set_add("A" +DELIM+ "B" +DELIM+ "C" +DELIM+ "D","A"))\E» # Liefert: A B C D getrennt durch Ogham Space Mark (Die Liste kann keine doppelten Werte enthalten.) |
||
set_remove
|
set_remove(valueSet, valueToRemove)
|
Entfernt einen Wert aus der Liste und gibt die Liste
zurück.
«(set_remove("A" +DELIM+ "B" +DELIM+ "C" +DELIM+ "D","A"))\E» # Liefert: B C D getrennt durch Ogham Space Mark «(set_remove("A" +DELIM+ "B" +DELIM+ "C" +DELIM+ "D","E"))\E» # Liefert: A B C D getrennt durch Ogham Space Mark (Das Entfernen eines nicht enthaltenen Werts hat keinen Einfluss auf die Liste.) |
||
DELIM
|
Delimiter: Ogham Space Mark
|
Die einzelnen Werte werden mittels Ogham Space
Mark (Unicode U+1680) getrennt. Mit folgendem Befehl kann das
Zeichen (Ogham Space Mark) ausgegeben werden:
«(DELIM)\E» |
||
string
|
string(number)
|
Wandelt eine Zahl oder ein Datum in einen String
um.
«X(A=522.443)» # «SYS(MSG INFO «(string(«X(A)»))\E»)» «X(A=29.07.2015)» # «SYS(MSG INFO «(string(«X(A)»))\E»)» |
||
sqrt
|
sqrt(number)
|
Berechnet die Quadratwurzel einer Zahl.
«X(Nmb=9)» # «SYS(MSG INFO «(sqrt(«X(Nmb)»))\E»)» «X(Integer=9)» «(sqrt(Integer))\E» |
||
trim(string)
|
Entfernt eventuell vorhandene führende und
abschliessende Leerzeichen. Siehe auch ltrim und
rtrim.
«X(Value= Hello World! )» «(trim(Value))\E» |
|||
uc_char(integer)
|
Liefert für einen Unicode (siehe auch
http://unicode-table.com) das entsprechende Zeichen. Das Resultat
des Ausdrucks uc_char(8364) ist beispielsweise das Zeichen
€.
«X(A=8364)» # Ausgabe: € «SYS(MSG INFO «(uc_char(«X(A)»))\E»)» |
|||
uc_int(string)
|
Liefert für das erste Zeichen eines String den Unicode
(siehe auch http://unicode-table.com). Das Resultat des Ausdrucks
uc_int('$') lautet beispielsweise 36.
«X(A=$)» # Ausgabe: 36 «SYS(MSG INFO «(uc_int("«X(A)»"))\E»)» |
|||
uppercase(string)
|
Wandelt einen String in Grossbuchstaben
um.
«X(Value=Hello World! This is Mars calling...)» «(uppercase(Value))\E» |