Funktionen - Aps.Function

Die unter diesem Kapitel beschriebenen Funktionen könnten auch als " Expression-Funktionen" bezeichnet werden. Sie stehen generell zur Verfügung und können deshalb jederzeit und überall in einem F-Script genutzt werden.
Wenn in der nachfolgenden Beschreibung von "String" die Rede ist, dann ist damit sowohl der Inhalt eines Attributs als auch ein fixer Wert gemeint.
Hinweis
Hinweis
Beachten 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.
Achtung
Achtung
Diese Funktion ist nicht Unicode-tauglich - bei Bedarf stattdessen uc_int() verwenden!
«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 ±.
Achtung
Achtung
Diese Funktion ist nicht Unicode-tauglich - bei Bedarf stattdessen uc_char() verwenden!
«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.
Hinweis
Hinweis
Die Zeitzonen-Codes finden Sie in der OpaccOXAS LiveDocumentation unter: BIZ Infos > Codes > ApsTimezone.
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.
Achtung
Achtung
Leerstring liefert, angelehnt an das Verhalten der übrigen Datentypen, true.
isTimestamp
isTimestamp(value)
Prüfung ob Cast möglich ist.
Achtung
Achtung
Leerstring liefert, angelehnt an das Verhalten der übrigen Datentypen, true.
dateToStr
dateToStr(value [,"format"])
Datum formatieren. Default-Format: "dd.MM.yyyy"
Mögliche Token:
  • "d" // Tag ohne führende 0
  • "dd" // Tag mit führender 0
  • "M" // Monat ohne führende 0
  • "MM" // Monat mit führender 0
  • "yy" // Jahr zweistellig
  • "yyyy" // Jahr vierstellig
Mögliche Delimiter:
  • . (Punkt)
  • , (Komma)
  • : (Doppelpunkt)
  • - (Strich)
  • _ (Unterstrich/Underscore)
  • / (Schrägstrich/Slash)
timeToStr
timeToStr(value [,"format"])
Zeit (Time) formatieren. Default-Format: "HH:mm:ss"
Mögliche Token:
  • "H" // Stunde (0-23) ohne führende 0
  • "HH" // Stunde (0-23) mit führender 0
  • "m" // Minute ohne führende 0
  • "mm" // Minute mit führender 0
  • "s" // Sekunde ohne führende 0
  • "ss" // Sekunde mit führender 0
Mögliche Delimiter:
  • . (Punkt)
  • , (Komma)
  • : (Doppelpunkt)
  • - (Strich)
  • _ (Unterstrich/Underscore)
  • / (Schrägstrich/Slash)
timestampToStr
timestampToStr(value [,"format"])
Zeitstempel (Timestamp) formatieren. Default-format: "dd.MM.yyyy HH:mm:ss"
Mögliche Token:
  • "d" // Tag ohne führende 0
  • "dd" // Tag mit führender 0
  • "M" // Monat ohne führende 0
  • "MM" // Monat mit führender 0
  • "yy" // Jahr zweistellig
  • "yyyy" // Jahr vierstellig
  • "H" // Stunde (0-23) ohne führende 0
  • "HH" // Stunde (0-23) mit führender 0
  • "m" // Minute ohne führende 0
  • "mm" // Minute mit führender 0
  • "s" // Sekunde ohne führende 0
  • "ss" // Sekunde mit führender 0
Mögliche Delimiter:
  • . (Punkt)
  • , (Komma)
  • : (Doppelpunkt)
  • - (Strich)
  • _ (Unterstrich/Underscore)
  • / (Schrägstrich/Slash)
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»***)»
operator_01.jpg
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:
  • 1 - immer aufrunden
  • 0 oder leer - normal runden
  • -1 - immer abrunden
# 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»