In diesem Beitrag erfährst du alles über die Workflow Action „Calculated Fields“ und wie du sie effektiv nutzen kannst, um Berechnungen anzustellen, Texte zu identifizieren und Daten zu formatieren.
Was sind Calculated Fields?
Diese Funktion basiert auf einem definierten Formelwerk, das dir ermöglicht, komplexe Transformationen vorzunehmen. Sie besteht aus drei zentralen Bestandteilen: Parameter, Relation Parameter und Formulas.
1. Parameter
Parameter sind die Felder des Workflow-Moduls, die du für deine Berechnungen verwenden kannst. Diese Parameter werden in Formeln nach dem Schema `{P0}` eingebunden. Sobald du einen neuen Parameter hinzufügst, wird im Interface angezeigt, welchen Parameter das betreffende Feld hat. So hast du immer die volle Kontrolle darüber, wie die Daten in deinen Berechnungen verwendet werden.
2. Relation Parameter
Mit Relation Parameter erhältst du Zugriff auf alle 1-zu-viele-Beziehungen des Moduls und deren Felder. Diese werden in Formeln nach dem Schema `{R0}` eingebunden. Dadurch kannst du Daten aus in Beziehung stehenden Datensätzen auswerten und berücksichtigen. Das gibt dir die Möglichkeit, komplexere Datenanalysen und Transformationen durchzuführen.
3. Formulas
Unter Formulas legst du die konkrete Formel fest, die auf ein bestimmtes Feld angewendet werden soll. Du wählst zunächst das entsprechende Feld aus und gibst dann die Formel in der Textzeile ein. Du kannst mehrere Formeln ineinander verschachteln oder hintereinander verketten. Um dies zu tun, füge einfach eine weitere Formel anstelle eines Parameter-Teils in einer anderen Formel ein oder hänge eine neue Formel an deine vorherige Formel an. Wichtig ist, darauf zu achten, dass die Notation korrekt ist, da sonst die Auswertung fehlschlagen könnte.
Unterstützte Formel-Kategorien
- Logische Funktionen: Diese liefern die Werte 0 oder 1 und sind ideal für Abgleiche wie „gleich“ oder „größer gleich“.
- Textfunktionen: Verwende diese, um Texte in unterschiedlichen Formen zu transformieren.
- Mathematische Funktionen: Nutze alle gängigen mathematischen Operationen, um Zahlen zu transformieren.
- Datumsfunktionen: Diese sind nützlich, um Datumswerte zu transformieren oder aufgrund bestimmter Bedingungen festzulegen.
- Kontroll-Funktionen: Mit der ifThenElse-Funktion kannst du komplexe Abfragen und Bedingungsprüfungen durchführen. Verschachtelungen sind hier möglich, um mehrere Bedingungen zu berücksichtigen.
- Counter Funktionen: Diese Funktionen zählen Datensätze innerhalb des Systems und fügen ihnen Zähler hinzu.
- JSON-Funktionen: JSON Arrays können nach bestimmten Regeln transformiert und spezifische Werte extrahiert werden.
- PHP-Funktionen: Diese Funktionen können genutzt werden, um PHP Arrays zu transformieren.
Mit dieser Übersicht bist du bestens gerüstet, um die Calculated Fields in deinen Workflows optimal einzusetzen.
Logische Funktionen
Logische Funktionen geben true oder false in Form von 1 und 0 zurück, sodass Checkbox-Felder mit diesen Funktionen gefüllt werden können. Sie können auch als logische Bedingung für die ifThenElse-Funktion verwendet werden.
equal
Formel | {equal(parameter1;parameter2)} |
Parameter | parameter1: kann ein beliebiger Wert eines beliebigen Typs sein |
parameter2: kann ein beliebiger Wert eines beliebigen Typs sein | |
Beschreibung | Prüft ob parameter1 gleich parameter2 ist |
Ergebnis | 1, wenn die Parameter gleich sind 0, wenn nicht |
Beispiel | {equal(1; 2)} Ergebnis 0 |
notEqual
Formel | {notEqual(parameter1; parameter2)} |
Parameter | parameter1: kann ein beliebiger Wert eines beliebigen Typs sein |
parameter2: kann ein beliebiger Wert eines beliebigen Typs sein | |
Beschreibung | Prüft ob parameter1 ungleich parameter2 ist |
Ergebnis | 0, wenn die Parameter gleich sind 1, wenn nicht |
Beispiel | {notEqual(1; 2)} Ergebnis 1 |
greaterThan
Formel | {greaterThan(parameter1; parameter2)} |
Parameter | parameter1: kann ein beliebiger Wert eines beliebigen Typs sein |
parameter2: kann ein beliebiger Wert eines beliebigen Typs sein | |
Beschreibung | Prüft ob parameter1 größer als parameter2 ist |
Ergebnis | 1,wenn parameter1 größer als parameter2 ist, 0, wenn nicht |
Beispiel | {greaterThan(3; 3)} Ergebnis 0 |
greaterThanOrEqual
Formel | {greaterThanOrEqual(parameter1; parameter2)} |
Parameter | parameter1: kann ein beliebiger Wert eines beliebigen Typs sein |
parameter2: kann ein beliebiger Wert eines beliebigen Typs sein | |
Beschreibung | Prüft ob parameter1 größer oder gleich parameter2 ist |
Ergebnis | 1, wenn parameter1 größer oder gleich parameter2 ist, 0, wenn nicht |
Beispiel | {greaterThanOrEqual(3; 3)} Ergebnis 1 |
lessThan
Formel | {lessThan(parameter1; parameter2)} |
Parameter | parameter1: kann ein beliebiger Wert eines beliebigen Typs sein |
parameter2: kann ein beliebiger Wert eines beliebigen Typs sein | |
Beschreibung | Prüft ob parameter1 kleiner als parameter2 ist |
Ergebnis | 1, wenn parameter1 kleiner als parameter2 ist, 0, wenn nicht |
Beispiel | {lessThan(3; 3)} Ergebnis 0 |
lessThanOrEqual
Formel | {lessThanOrEqual(parameter1; parameter2)} |
Parameter | parameter1: kann ein beliebiger Wert eines beliebigen Typs sein |
parameter2: kann ein beliebiger Wert eines beliebigen Typs sein | |
Beschreibung | Prüft ob parameter1 kleiner oder gleich parameter2 ist |
Ergebnis | 1, wenn parameter1 kleiner oder gleich parameter2, 0, wenn nicht |
Beispiel | {lessThanOrEqual(3; 3)} Ergebnis 1 |
empty
Formel | {empty(parameter)} |
Parameter | parameter: Text |
Beschreibung | Prüft ob parameter leer ist |
Ergebnis | 1, wenn parameter leer ist, 0, wenn nicht |
Beispiel | {empty(beliebiger Text)} Ergebnis 0 |
notEmpty
Formel | {notEmpty(parameter)} |
Parameter | parameter: Text |
Beschreibung | Prüft ob parameter ungleich leer ist |
Ergebnis | 1, wenn parameter nicht leer ist, 0, wenn leer |
Beispiel | {notEmpty(beliebiger Text)} Ergebnis 1 |
not
Formel | {not(parameter)} |
Parameter | parameter: Logikwert |
Beschreibung | Negiert the Logikwert von parameter |
Ergebnis | 1, wenn parameter ist 0, 0, wenn parameter ist 1 |
Beispiel | {not(0)} Ergebnis 1 |
and
Formel | {and(parameter1; parameter2)} |
Parameter | parameter1: Logikwert |
parameter2: Logikwert | |
Beschreibung | Fügt den UND Logik-Operator zu zwei Logikwerten hinzu |
Ergebnis | 1, wenn parameter1 and parameter2 gleich 1 sind, 0, wenn einer der Parameter 0 ist |
Beispiel | {and(1; 0)} Ergebnis 0 |
or
Formel | {or(parameter1; parameter2)} |
Parameter | parameter1: Logikwert |
parameter2: Logikwert | |
Beschreibung | Fügt den ODER Logik-Operator zu zwei Logikwerten hinzu |
Ergebnis | 1, wenn parameter1 oder parameter2 gleich 1 ist, 0, wenn beide Parameter gleich 0 sind |
Beispiel | {or(1; 0)} Ergebnis 1 |
Textfunktionen
Textfunktionen werden verwendet, um Text auf verschiedene Weise zu transformieren. Alle hier aufgeführten Funktionen unterstützen UTF-8-Texte vollständig, sodass Sonderzeichen keine Probleme verursachen sollten.
substring
Formel | {substring(text; start; length)} |
Parameter | text: Text |
start: Dezimalzahl | |
length (Optional): Dezimalzahl | |
Beschreibung | Schneidet die Teilzeichenkette eines Textfeldes vom Anfang an aus. Wenn der optionale Parameter length nicht gesetzt ist, werden alle Zeichen bis zum Ende der Zeichenkette abgeschnitten, andernfalls wird die angegebene Länge abgeschnitten. Indizierung der Zeichen eines Textes beginnend bei 0. |
Ergebnis | Teilzeichenkette des gegebenen Texts |
Beispiel | {substring(Das ist mein Text; 4)} Ergebnis ist mein Text |
{substring(Das ist mein Text; 4; 8)} Ergebnis ist mein |
length
Formel | {length(parameter)} |
Parameter | parameter: Text |
Beschreibung | Zählt die Zeichen eines Texts. |
Ergebnis | Die Anzahl der Zeichen eines Texts. |
Beispiel | {length(Beispiel Text)} Ergebnis 13 |
replace
Formel | {replace(search; replace; subject)} |
Parameter | search: Text |
replace: Text | |
subject: Text | |
Beschreibung | Ersetzt alle Erscheinungen von search zu replace in subject |
Ergebnis | subject mit ersetzten Werten. |
Beispiel | {replace(Apfel; Orangen; Das ist ein Apfelbaum)} Ergebnis Das ist ein Orangenbaum |
position
Formel | {position(subject; search)} |
Parameter | subject: Text |
search: Text | |
Beschreibung | Sucht in subject nach dem ersten Auftreten von search |
Ergebnis | Zahlenposition von search in subject oder -1, wenn search in subject nicht vorhanden ist |
Beispiel | {position(Wo ist mein Text?; Text)} Ergebnis 12 |
lowercase
Formel | {lowercase(parameter)} |
Parameter | parameter: Text |
Beschreibung | Wandelt den Text in Kleinbuchstaben |
Ergebnis | Der Text in Kleinbuchstaben |
Beispiel | {lowercase(DaS iSt EiN BeiSpIelTexT)} Ergebnis das ist ein beispieltext |
uppercase
Formel | {uppercase(parameter)} |
Parameter | parameter: Text |
Beschreibung | Wandelt den Text in Großbuchstaben |
Ergebnis | Der Text in Großbuchstaben |
Beispiel | {uppercase(DaS iSt EiN BeiSpIelTexT)} Ergebnis DAS IST EIN BEISPIELTEXT |
uppercaseword
Neu ab DataEngine 24.11.1
Formel | {uppercaseword(parameter)} |
Parameter | parameter: String oder Text. Kann auch eine Variable sein: {P0} |
Beschreibung | Wandelt den ersten Buchstaben aller Wörter einer Zeichenfolge in Großbuchstaben um. Wandelt alle anderen Buchstaben in Kleinbuchstaben um. |
Ergebnis | Die Zeichenfolge mit dem jeweils ersten Buchstaben eines Wortes als Großbuchstabe. |
Beispiel | {uppercaseword(DIES IST EIN TEXT MIT LAUTER GROSSBUCHSTABEN)} ergibt Dies Ist Ein Text Mit Lauter Grossbuchstaben |
Base64Encode
Formel | {Base64Encode(parameter1)} |
Parameter | parameter1: Die zu kodierende Zeichenfolge |
Beschreibung | Kodiert eine Zeichenfolge in Base64. |
Ergebnis | Die Base64-kodierte Zeichenfolge. |
Beispiel | {Base64Encode(abc)} – Kodiert die Zeichenfolge abc in Base 64. |
Base64Decode
Formel | {Base64Decode(parameter1)} |
Parameter | parameter1: Die zu dekodierende base64-kodierte Zeichenfolge |
Beschreibung | Dekodiert eine base64-kodierte Zeichenfolge. |
Ergebnis | Die dekodierte Zeichenfolge. |
Beispiel | {Base64Decode(„YWJj“)} – Dekodiert die base64-kodierte Zeichenfolge YWJj zu abc. |
Mathematische Funktionen
Mathematische Funktionen werden verwendet, um Zahlen auf verschiedene Weise zu transformieren. Mehrere mathematische Operatoren sind in Calculated Fields als Funktionen implementiert.
add
Formel | {add(parameter1; parameter2)} |
Parameter | parameter1: Zahlenwert |
parameter2: Zahlenwert | |
Beschreibung | Addiert parameter1 zu parameter2 hinzu |
Ergebnis | Die Summe von parameter1 und parameter2 |
Beispiel | {add(3.12; 4.83)} Ergebnis 7.95 |
subtract
Formel | {subtract(parameter1; parameter2)} |
Parameter | parameter1: Zahlenwert |
parameter2: Zahlenwert | |
Beschreibung | Zieht parameter2 von parameter1 ab |
Ergebnis | Die Differenz von parameter2 und parameter1 |
Beispiel | {subtract(8; 3)} Ergebnis 5 |
multiply
Formel | {multiply(parameter1; parameter2)} |
Parameter | parameter1: Zahlenwert |
parameter2: Zahlenwert | |
Beschreibung | Multipliziert parameter1 und parameter2 |
Ergebnis | Das Produkt von parameter1 und parameter2 |
Beispiel | {multiply(2; 4)} Ergebnis 8 |
divide
Formel | {divide(parameter1; parameter2)} |
Parameter | parameter1: Zahlenwert |
parameter2: Zahlenwert | |
Beschreibung | Teilt parameter1 durch parameter2 |
Ergebnis | Die Division von parameter1 und parameter2 |
Beispiel | {divide(8; 2)} Ergebnis 4 |
power
Formel | {power(parameter1; parameter2)} |
Parameter | parameter1: Zahlenwert |
parameter2: Zahlenwert | |
Beschreibung | Potenziert parameter1 um die Anzahl von parameter2 |
Ergebnis | parameter1 potenziert um die Anzahl von parameter2 |
Beispiel | {power(2; 7)} Ergebnis 128 |
squareRoot
Formel | {squareRoot(parameter)} |
Parameter | parameter: Zahlenwert |
Beschreibung | Zieht die Wurzel von parameter |
Ergebnis | Die Wurzel von parameter |
Beispiel | {squareRoot(4)} Ergebnis 2 |
absolute
Formel | {absolute(parameter)} |
Parameter | parameter: Zahlenwert |
Beschreibung | Berechnet den absoluten Wert von parameter |
Ergebnis | Der absolute Wert von parameter |
Beispiel | {absolute(-4)} Ergebnis 4 |
sum
Neu ab DataEngine 25.01.1
Formel | {sum(BeanID;RelatedModule;Field;FilterField;FilterOperator;FilterValue)} |
Parameter | BeanID: ID des Beans, von dem aus gestartet wird. |
RelatedModule: Name der Beziehung wie im Studio definiert. Mehrere Beziehungen können mittels :: verknüpft werden (Von Kontakt zu Firma, Von Firma zu Rechnung). Kann leer sein, um alle Einträge in der Modultabelle zu summieren. | |
Field: Name des zu summierenden Feldes aus dem zuletzt genannten „RelatedModule“. | |
FilterField(Optional): Ein beliebiges Feld aus dem zuletzt genannten „RelatedModule“, das für die Filterung verwendet wird. Falls der Parameter ein Datum/Zeit Feld ist, wird der angegebene Wert automatisch in ein Datum umgewandelt. | |
FilterOperator (Optional): Ein Operator für die Filterung. Mögliche Operatoren sind lt, lte, gt, gte, eq, neq. | |
FilterValue (Optional): Ein Wert gegen den das FilterField verglichen wird mit dem entsprechenden FilterOperator. | |
Beschreibung | Summiert die Werte der Einträge, die mit dem angegebenen Bean in Beziehung stehen. Es ist möglich, die Summierung basierend auf einem Feld im zugehörigen Modul zu filtern, beispielsweise für „Nur Rechnungen der letzten 2 Jahre“. |
Ergebnis | Summe aller Werte |
Beispiel | {sum({P0};core_accounts_core_contracts;contract_volume;last_invoice;gt;{subtractYears(Y-m-d;{now(Y-m-d)};2)})} – Summiert das Vertragsvolumen der Verträge des aktuellen Accounts, die in den letzten zwei Jahren eine Rechnung erhalten haben. |
count
Neu ab DataEngine 25.01.1
Formel | {count(BeanID;RelatedModule;Field;FilterField;FilterOperator;FilterValue)} |
Parameter | BeanID: ID des Beans, von dem aus gestartet wird. |
RelatedModule: Name der Beziehung wie im Studio definiert. Mehrere Beziehungen können mittels :: verknüpft werden (Von Kontakt zu Firma, Von Firma zu Rechnung). Kann leer sein, um alle Einträge in der Modultabelle zu zählen. | |
Field: Name des zu zählenden Feldes, beispielsweise id. Wenn hier ein anderes Feld als „id“ angegeben wird, wird überprüft, ob dieses Feld nicht leer ist. Dadurch kann ein anderes Ergebnis als das Zählen über „id“ zurückgegeben werden. Das Feld muss aus dem zuletzt genannten „RelatedModule“ stammen. | |
FilterField(Optional): Ein beliebiges Feld aus dem zuletzt genannten „RelatedModule“, das für die Filterung verwendet wird. Falls der Parameter ein Datum/Zeit Feld ist, wird der angegebene Wert automatisch in ein Datum umgewandelt. | |
FilterOperator (Optional): Ein Operator für die Filterung. Mögliche Operatoren sind lt, lte, gt, gte, eq, neq. | |
FilterValue (Optional): Ein Wert gegen den das FilterField verglichen wird mit dem entsprechenden FilterOperator. | |
Beschreibung | Zählt die Einträge, die mit dem angegebenen Bean in Beziehung stehen. Es ist möglich, die Zählung basierend auf einem Feld im zugehörigen Modul zu filtern, beispielsweise für „Nur Rechnungen der letzten 2 Jahre“. Falls ein Feld angegeben ist, darf dieses nicht leer sein. |
Ergebnis | Anzahl der Ergebnisse. |
Beispiel | {count({P0};core_accounts_core_contracts;contract_volume;last_invoice;gt;{subtractYears(Y-m-d;{now(Y-m-d)};2)})} – Zählt die Verträge des aktuellen Accounts mit nicht leerem Volumen, die in den letzten zwei Jahren eine Rechnung erhalten haben. |
floor
Neu ab DataEngine 25.01.1-beta1
Formel | {floor(parameter)} |
Parameter | parameter: Zahlenwert |
Beschreibung | Rundet den Zahlenwert in parameter auf die nächst kleinere Zahl. |
Ergebnis | Der gerundete Wert von parameter. |
Beispiel | {floor(3.1415)} Ergebnis 3 |
ceil
Neu ab DataEngine 25.01.1-beta1
Formel | {ceil(parameter)} |
Parameter | parameter: Zahlenwert |
Beschreibung | Rundet den Zahlenwert von parameter auf die nächst größere Zahl. |
Ergebnis | Der gerundete Wert von parameter. |
Beispiel | {floor(3.1415)} Ergebnis 4 |
round
Neu ab DataEngine 25.01.1-beta1
Formel | {round(parameter1; parameter2; parameter3)} |
Parameter | parameter1: Zahlenwert |
parameter2 (optional): Anzahl an Nachkommastellen | |
parameter3 (optional): Rundungsregel (was passiert mit ,5) mit folgenden Optionen: down = strikt ab; up = strikt hoch; even= zur nächsten geraden Ganzzahl; odd = zur nächsten ungeraden Ganzzahl | |
Beschreibung | Rundet die aktuelle Zahl auf den nächsten Wert, basierend auf den in parameter2 und parameter3 eingegebenen Regeln. Sind die Parameter 2 und 3 nicht gesetzt, wird die Zahl mit zwei Dezimalstellen abgerundet. |
Ergebnis | Der gerundete Wert von parameter1. |
Beispiel | {round(3.1415; 3; up)} Ergebnis 3,142 |
Datumsfunktionen
Es gibt mehrere Datumsfunktionen, die in Calculated Fields implementiert sind, sodass der Benutzer Daten auf vielfältige Weise transformieren kann. Die meisten Funktionen verwenden einen Format-Parameter, mit dem das Ergebnis der Funktionen nach den Wünschen des Benutzers formatiert wird. Die Optionen für diese Formate entsprechen den PHP-Formatparametern (bei textlicher Darstellung ist das Ergebnis immer der englische Wert):
Für Tage
Formelzeichen | Beschreibung | Beispiel Ergebnis |
d | Tag des Monats, 2 Ziffern mit führenden Nullen | 01 bis 31 |
D | Eine textliche Darstellung eines Tages, drei Buchstaben | Mon bis Sun |
j | Tag des Monats, ohne führenden Nullen | 1 bis 31 |
l | Eine volle textliche Darstellung einer Woche | Sunday bis Saturday |
N | ISO-8601 numerische Darstellung des Wochentags | 1 (für Monday) bis 7 (für Sunday) |
S | Englisches Ordnungssuffix für den Tag des Monats, 2 Zeichen | st, nd, rd or th. Funktioniert gut mit j |
w | Numerische Darstellung des Wochentags | 0 (für Sunday) bis 6 (für Saturday) |
z | Der Tag des Jahres (beginnend bei 0) | 0 bis 365 |
Für Wochen
Formelzeichen | Beschreibung | Beispiel Ergebnis |
W | ISO-8601 Wochennummer des Jahres, Die Woche beginnt montags | 42 (die 42. Woche des Jahres) |
Für Monate
Formelzeichen | Beschreibung | Beispiel Ergebnis |
F | Eine vollständige textuelle Darstellung eines Monats | January bis December |
m | Numerische Darstellung eines Monats, mit führenden Nullen | 01 bis 12 |
M | Eine kurze textliche Darstellung eines Monats, drei Buchstaben | Jan bis Dec |
n | Numerische Darstellung eines Monats, ohne führende Nullen | 1 bis 12 |
t | Anzahl der Tage im jeweiligen Monat | 28 bis 31 |
Für Jahre
Formelzeichen | Beschreibung | Beispiel Ergebnis |
L | Ob es ein Schaltjahr ist | 1 wenn Schaltjahr, 0 sonst |
o | ISO-8601-Jahreszahl. Diese hat denselben Wert wie Y, außer, wenn die ISO-Wochennummer (W) zum vorhergehenden oder nächsten Jahr gehört, dann wird dieses Jahr verwendet. | 1999 oder 2003 |
Y | Eine vollständige numerische Darstellung einer Jahreszahl, 4 Stellen | 1999 oder 2003 |
y | Eine zweistellige Darstellung einer Jahreszahl | 99 oder 03 |
Für Zeit
Formelzeichen | Beschreibung | Beispiel Ergebnis |
a | Kleinbuchstaben Ante meridiem und Post meridiem | am oder pm |
A | Großbuchstaben Ante meridiem und Post meridiem | AM oder PM |
B | Swatch Internet Zeit | 000 bis 999 |
g | 12-Stunden-Format einer Stunde ohne führende Nullen | 1 bis 12 |
G | 24-Stunden-Format mit einer Stunde ohne führende Nullen | 0 bis 23 |
h | 12-Stunden-Format einer Stunde mit führende Nullen | 01 bis 12 |
H | 24-Stunden-Format mit einer Stunde mit führende Nullen | 00 bis 23 |
i | Minuten mit führenden Nullen | 00 bis 59 |
s | Sekunden mit führenden Nullen | 00 bis 59 |
Für Zeitzonen
Formelzeichen | Beschreibung | Beispiel Ergebnis |
e | Kennung der Zeitzone | UTC, GMT, Atlantic/Azores |
l | ob das Datum in der Sommerzeit liegt oder nicht | 1 wenn Sommerzeit, 0 sonst |
O | Differenz zur Greenwich-Zeit (GMT) in Stunden | 200 |
P | Differenz zur Greenwich-Zeit (GMT) mit Doppelpunkt zwischen Stunden und Minuten | +02:00 |
T | Abkürzung der Zeitzone | EST, MDT |
Z | Zeitzonenversatz in Sekunden. Der Versatz für Zeitzonen westlich von UTC ist immer negativ und für solche östlich von UTC ist immer positiv. | -43200 through 50400 |
Für komplette Zeitstempel
Formelzeichen | Beschreibung | Beispiel Ergebnis |
c | ISO 8601 Datum | 2004-02-12T15:19:21+00:00 |
r | RFC 2822 formatiertes Datum | Thu, 21 Dec 2000 16:01:07 +0200 |
U | Sekunden seit der Unix-Epoche (1. Januar 1970 00:00:00 GMT) |
Die folgenden Datumsfunktionen können mittels Calculated Fields verwendet werden:
date
Formel | {date(format; timestamp)} |
Parameter | format: Formatzeichen |
timestamp: Datum-/Zeitwert | |
Beschreibung | Erstellt ein Datum im gegebenen Format |
Ergebnis | Zeitstempel im gegebenen Format |
Beispiel | {date(ymd; 2016-02-11)} Ergebnis 160211 |
now
Formel | {now(format)} |
Parameter | format: Formatzeichen |
Beschreibung | Erstellt das aktuelle Datum im gegebenen Format |
Ergebnis | Aktueller Zeitstempel im gegebenen Format |
Beispiel | {now(Y-m-d H:i:s)} Ergebnis 2016-04-29 15:08:03 |
yesterday
Formel | {yesterday(format)} |
Parameter | format: Formatzeichen |
Beschreibung | Erstellt das gestrige Datum im gegebenen Format |
Ergebnis | Der gestrige Zeitstempel im gegebenen Format |
Beispiel | {yesterday(Y-m-d H:i:s)} Ergebnis 2016-04-28 15:08:03 |
tomorrow
Formel | {tomorrow(format)} |
Parameter | format: Formatzeichen |
Beschreibung | Erstellt das morgige Datum im gegebenen Format |
Ergebnis | Der morgige Zeitstempel im gegebenen Format |
Beispiel | {tomorrow(Y-m-d H:i:s)} Ergebnis 2016-04-30 15:08:03 |
datediff
Formel | {datediff(timestamp1; timestamp2; unit)} |
Parameter | timestamp1: Datum-/Zeitwert |
timestamp2: Datum-/Zeitwert | |
unit: years/months/days/hours/minutes/seconds; default: days | |
Beschreibung | Subtrahiert timestamp2 von timestamp1 |
Ergebnis | Die Differenz zwischen beiden Zeitstempeln in der angegebenen unit |
Beispiel | {datediff(2016-02-01; 2016-04-22; days)} Ergebnis 81 |
addYears
Formel | {addYears(format; timestamp; amount)} |
Parameter | format: Formatzeichen |
timestamp: Datum-/Zeitwert | |
amount: Ganzzahl | |
Beschreibung | Fügt die unter amount hinterlegte Anzahl von Jahren zum Zeitstempel hinzu und gibt diesen im gegebenen Format aus. |
Ergebnis | Erhöhtes Datum in Format |
Beispiel | {addYears(Ymd; 2016-04-22; 1)} Ergebnis 20170422 |
addMonths
Formel | {addMonths(format; timestamp; amount)} |
Parameter | format: Formatzeichen |
timestamp: Datum-/Zeitwert | |
amount: Ganzzahl | |
Beschreibung | Fügt die unter amount hinterlegte Anzahl von Monaten zum Zeitstempel hinzu und gibt diesen im gegebenen Format aus. |
Ergebnis | Erhöhtes Datum in Format |
Beispiel | {addMonths(Ymd; 2016-04-22; 1)} Ergebnis 20160522 |
addDays
Formel | {addDays(format; timestamp; amount)} |
Parameter | format: Formatzeichen |
timestamp: Datum-/Zeitwert | |
amount: Ganzzahl | |
Beschreibung | Fügt die unter amount hinterlegte Anzahl von Tagen zum Zeitstempel hinzu und gibt diesen im gegebenen Format aus. |
Ergebnis | Erhöhtes Datum in Format |
Beispiel | {addDays(Ymd; 2016-04-22; 1)} Ergebnis 20160423 |
addHours
Formel | {addHours(format; timestamp; amount)} |
Parameter | format: Formatzeichen |
timestamp: Datum-/Zeitwert | |
amount: Ganzzahl | |
Beschreibung | Fügt die unter amount hinterlegte Anzahl von Stunden zum Zeitstempel hinzu und gibt diesen im gegebenen Format aus. |
Ergebnis | Erhöhtes Datum in Format |
Beispiel | {addHours(Ymd H:i:s; 2016-04-22 23:30; 5)} Ergebnis 20160423 04:30:00 |
addMinutes
Formel | {addMinutes(format; timestamp; amount)} |
Parameter | format: Formatzeichen |
timestamp: Datum-/Zeitwert | |
amount: Ganzzahl | |
Beschreibung | Fügt die unter amount hinterlegte Anzahl von Minuten zum Zeitstempel hinzu und gibt diesen im gegebenen Format aus. |
Ergebnis | Erhöhtes Datum in Format |
Beispiel | {addMinutes(Ymd H:i:s; 2016-04-22 22:58; 5)} Ergebnis 20160422 23:03:00 |
addSeconds
Formel | {addSeconds(format; timestamp; amount)} |
Parameter | format: Formatzeichen |
timestamp: Datum-/Zeitwert | |
amount: Ganzzahl | |
Beschreibung | Fügt die unter amount hinterlegte Anzahl von Sekunden zum Zeitstempel hinzu und gibt diesen im gegebenen Format aus. |
Ergebnis | Erhöhtes Datum in Format |
Beispiel | {addSeconds(Ymd H:i:s; 2016-04-22 22:58; 5)} Ergebnis 20160422 22:58:05 |
subtractYears
Formel | {subtractYears(format; timestamp; amount)} |
Parameter | format: Formatzeichen |
timestamp: Datum-/Zeitwert | |
amount: Ganzzahl | |
Beschreibung | Subtrahiert die unter amount hinterlegte Anzahl von Jahren vom Zeitstempel und gibt diesen im gegebenen Format aus. |
Ergebnis | Dezimiertes Datum in Format |
Beispiel | {subtractYears(Ymd; 2016-04-22; 5)} Ergebnis 20110422 |
subtractMonths
Formel | {subtractMonths(format; timestamp; amount)} |
Parameter | format: Formatzeichen |
timestamp: Datum-/Zeitwert | |
amount: Ganzzahl | |
Beschreibung | Subtrahiert die unter amount hinterlegte Anzahl von Monaten vom Zeitstempel und gibt diesen im gegebenen Format aus. |
Ergebnis | Dezimiertes Datum in Format |
Beispiel | {subtractMonths(Ymd; 2016-04-22; 5)} Ergebnis 20151122 |
subtractDays
Formel | {subtractDays(format; timestamp; amount)} |
Parameter | format: Formatzeichen |
timestamp: Datum-/Zeitwert | |
amount: Ganzzahl | |
Beschreibung | Subtrahiert die unter amount hinterlegte Anzahl von Tagen vom Zeitstempel und gibt diesen im gegebenen Format aus. |
Ergebnis | Dezimiertes Datum in Format |
Beispiel | {subtractDays(Ymd; 2016-04-22; 5)} Ergebnis 20160417 |
subtractHours
Formel | {subtractHours(format; timestamp; amount)} |
Parameter | format: Formatzeichen |
timestamp: Datum-/Zeitwert | |
amount: Ganzzahl | |
Beschreibung | Subtrahiert die unter amount hinterlegte Anzahl von Stunden vom Zeitstempel und gibt diesen im gegebenen Format aus. |
Ergebnis | Dezimiertes Datum in Format |
Beispiel | {subtractHours(Ymd H:i:s; 2016-04-22 12:37; 5)} Ergebnis 20160422 07:37:00 |
subtractMinutes
Formel | {subtractMinutes(format; timestamp; amount)} |
Parameter | format: Formatzeichen |
timestamp: Datum-/Zeitwert | |
amount: Ganzzahl | |
Beschreibung | Subtrahiert die unter amount hinterlegte Anzahl von Minuten vom Zeitstempel und gibt diesen im gegebenen Format aus. |
Ergebnis | Dezimiertes Datum in Format |
Beispiel | {subtractMinutes(Ymd H:i:s; 2016-04-22 12:37; 5)} Ergebnis 20160422 12:32:00 |
subtractSeconds
Formel | {subtractSeconds(format; timestamp; amount)} |
Parameter | format: Formatzeichen |
timestamp: Datum-/Zeitwert | |
amount: Ganzzahl | |
Beschreibung | Subtrahiert die unter amount hinterlegte Anzahl von Sekunden vom Zeitstempel und gibt diesen im gegebenen Format aus. |
Ergebnis | Dezimiertes Datum in Format |
Beispiel | {subtractSeconds(Ymd H:i:s; 2016-04-22 12:37; 5)} Ergebnis 20160422 12:36:55 |
Kontroll-Funktionen
Es existiert eine Kontrollfunktion in Calculated Fields. Diese Funktion stellt sicher, dass sehr komplexe Formeln mit Bedingungen erstellt werden können. Da die Funktionen ineinander verschachtelt werden können, können Verzweigungen mit vielen Ästen erstellt werden.
ifThenElse
Formel | {ifThenElse(condition; trueBranch; falseBranch)} |
Parameter | condition: Logikwert (bspw. die Auswertung einer logischen Funktion) |
trueBranch: beliebiger Ausdruck | |
falseBranch: beliebiger Ausdruck | |
Beschreibung | Wählt einen entsprechenden Ast, abhängig von der Bedingung |
Ergebnis | trueBranch, wenn die Bedingung korrekt ist, falseBranch, wenn die Bedingung falsch ist. |
Beispiel | {ifThenElse({equal(1; 1)}; 1 ist gleich 1; 1 ist ungleich 1)} Ergebnis 1 ist gleich 1 |
Counter Funktionen
Es gibt mehrere Zähler, die in Calculated Fields implementiert sind und in verschiedenen Szenarien verwendet werden können. Die Zähler sind in zwei Gruppen unterteilt:
- Globale Zähler: Zähler, die jedes Mal erhöht werden, wenn eine betroffene Formel ausgewertet wird.
- Tägliche Zähler: Zähler, die sich jeden Tag zurücksetzen (beginnen bei 1).
Weitere Erklärungen zu den unterschiedlichen Zählern findest du auch hier: Global Counter Manager
In den Beispielen nehmen wir an, dass der aktuelle Wert der Zähler 4 ist, sodass der erhöhte Wert mit dem gegebenen Format 5 sein wird.
GlobalCounter
Formel | {GlobalCounter(name; numberLength)} |
Parameter | name: beliebiger Text |
numberLength: Ganzzahl | |
Beschreibung | Zählt den Zähler mit dem gewählten Namen und der angegebenen Nummernlänge |
Ergebnis | Zähler mit der Länge numberLength |
Beispiel | {GlobalCounter(meinName; 4)} Ergebnis 0005 |
GlobalCounterPerUser
Formel | {GlobalCounterPerUser(name; numberLength)} |
Parameter | name: beliebiger Text |
numberLength: Ganzzahl | |
Beschreibung | Zählt den Zähler mit dem gewählten Namen und der angegebenen Nummernlänge für den Benutzer, der einen Datensatz anlegt. |
Ergebnis | Zähler mit der Länge numberLength |
Beispiel | {GlobalCounterPerUser(meinName; 3)} Ergebnis 005 |
GlobalCounterPerModule
Formel | {GlobalCounterPerModule(name; numberLength)} |
Parameter | name: beliebiger Text |
numberLength: Ganzzahl | |
Beschreibung | Zählt den Zähler mit dem gewählten Namen und der angegebenen Nummernlänge für das Workflow Modul |
Ergebnis | Zähler mit Länge numberLength |
Beispiel | {GlobalCounterPerModule(meinName; 2)} Ergebnis 05 |
GlobalCounterPerUserPerModule
Formel | {GlobalCounterPerUserPerModule(name; numberLength)} |
Parameter | name: beliebiger Text |
numberLength: Ganzzahl | |
Beschreibung | Zählt den Zähler mit dem gewählten Namen und der angegebenen Nummernlänge für den Benutzer, der einen Datensatz im Workflow Modul anlegt. |
Ergebnis | Zähler mit der Länge numberLength |
Beispiel | {GlobalCounterPerUserPerModule(meinName; 1)} Ergebnis 5 |
DailyCounter
Formel | {DailyCounter(name; numberLength)} |
Parameter | name: beliebiger Text |
numberLength: Ganzzahl | |
Beschreibung | Zählt den Zähler mit dem gewählten Namen und der angegebenen Nummernlänge für jeden Tag. |
Ergebnis | Zähler mit der Länge numberLength, oder wenn der Zähler an diesem Tag nicht erhöht wird, dann 1 mit der Länge with length numberLength |
Beispiel | {DailyCounter(meinName; 1)} Ergebnis 5 |
DailyCounterPerUser
Formel | {DailyCounterPerUser(name; numberLength)} |
Parameter | name: beliebiger Text |
numberLength: Ganzzahl | |
Beschreibung | Zählt den Zähler mit dem gewählten Namen und der angegebenen Nummernlänge für jeden Tag für den Benutzer, der einen Datensatz anlegt. |
Ergebnis | Zähler mit der Länge numberLength, oder wenn der Zähler an diesem Tag nicht erhöht wird, dann 1 mit der Länge with length numberLength |
Beispiel | {GlobalCounterPerUser(meinName; 3)} Ergebnis 005 |
DailyCounterPerModule
Formel | {DailyCounterPerModule(name; numberLength)} |
Parameter | name: beliebiger Text |
numberLength: Ganzzahl | |
Beschreibung | Zählt den Zähler mit dem gewählten Namen und der angegebenen Nummernlänge für jeden Tag innerhalb des Workflow Moduls. |
Ergebnis | Zähler mit der Länge numberLength, oder wenn der Zähler an diesem Tag nicht erhöht wird, dann 1 mit der Länge with length numberLength |
Beispiel | {DailyCounterPerModule(meinName; 1)} Ergebnis 5 |
DailyCounterPerUserPerModule
Formel | {DailyCounterPerUserPerModule(name; numberLength)} |
Parameter | name: beliebiger Text |
numberLength: Ganzzahl | |
Beschreibung | Zählt den Zähler mit dem gewählten Namen und der angegebenen Nummernlänge für einen Tag für den Benutzer, der einen Datensatz im Workflow Modul anlegt. |
Ergebnis | Zähler mit der Länge numberLength, oder wenn der Zähler an diesem Tag nicht erhöht wird, dann 1 mit der Länge with length numberLength |
Beispiel | {DailyCounterPerUserPerModule(meinName; 1)} Ergebnis 5 |
JSON-Funktionen
Mit den unterschiedlichen JSON Funktionen innerhalb der Calculated Fields kannst du JSON Arrays verarbeiten und so bspw. bestimmte Werte aus Arrays extrahieren oder Werte zu neuen JSON Arrays zusammensetzen.
CreateJSON
Formel | {CreateJSON(parameter1;parameter2;parameter3;…)} |
Parameter | parameterX: Der Schlüssel und der Wert, die dem JSON-Objekt hinzugefügt werden sollen. Schlüssel und Wert werden durch einen Punkt . getrennt. |
Beschreibung | Erstellt ein JSON-Objekt aus den angegebenen Parametern. |
Ergebnis | Die Zeichenfolge des JSON-Objekts. |
Beispiel | {CreateJSON(abc.def;ghi.jkl)} – Erstellt ein JSON-Objekt {„abc“:“def“,“ghi“:“jkl“} |
JsonExtract
Formel | {JsonExtract(parameter1;parameter2;parameter3)} |
Parameter | parameter1: Die Zeichenfolge des JSON-Objekts |
parameter2: Der abzurufende Schlüssel | |
parameter3: Der Standardwert, wenn der Schlüssel nicht existiert | |
Beschreibung | Holt einen Wert aus einem JSON-Objekt nach Schlüssel. |
Ergebnis | Der Wert für den Schlüssel oder der Standardwert, wenn der Schlüssel nicht existiert. |
Beispiel | {JsonExtract({P0};abc;default)} – Holt den Wert für den Schlüssel abc aus dem JSON-Objekt im Parameter 0. Für {„abc“:“def“,“ghi“:“jkl“} würde def zurückgegeben werden. |
JsonExplode
Formel | {JsonExplode(parameter1;parameter2;parameter3)} |
Parameter | parameter1: Ein Zeichenfolgenwert, der durch parameter 2 getrennt ist |
parameter2: Das Trennzeichen | |
parameter3: Standardwert. Vorsicht, dies gibt den Wert direkt zurück, nicht ein JSON-Array! | |
Beschreibung | Zerlegt einen Zeichenfolgenwert in ein JSON-Array. |
Ergebnis | Die Zeichenfolge des JSON-Arrays. |
Beispiel | {JsonExplode(abc;,;ghi)} – Das Ergebnis ist [„abc“] |
JsonImplode
Formel | {JsonImplode(parameter1;parameter2;parameter3)} |
Parameter | parameter1: Ein JSON-Array-String |
parameter2: Das Trennzeichen | |
parameter3: Standardwert. Wird nur verwendet, wenn das JSON ungültig ist! | |
Beschreibung | Implodiert ein JSON-Array zu einem Zeichenkettenwert. |
Ergebnis | Der Zeichenkettenwert |
Beispiel | {JsonImplode({P0};,;)} – Implodiert das JSON-Array aus Parameter 0 zu einem Zeichenkettenwert. Für [„abc“,“def“,“ghi“] wäre das Ergebnis abc,def,ghi |
PHP-Funktionen
Mit den PHP Funktionen können serialisierte PHP Arrays transformiert werden.
GetValueForKey
Formel | {GetValueForKey(parameter1;parameter2)} |
Parameter | parameter1: Ein base64-kodiertes serialisiertes PHP-Array |
parameter2: Der Schlüssel, der abgerufen werden soll. Verwende ., um auf verschachtelte Schlüssel zuzugreifen | |
Beschreibung | Holt einen Wert aus einem serialisierten PHP-Array nach Schlüssel. |
Ergebnis | Der Wert für den Schlüssel oder null, wenn der Schlüssel nicht existiert. |
Beispiel | {GetValueForKey({P0};abc)} – Holt den Wert für den Schlüssel abc aus dem serialisierten PHP-Array im Parameter 0. |