Details bestehenden Konstanten
...
Formeln
Weitere Informationen zu Formeln finden sich in der API-Dokumentation Formulas.
...
- node(".")
- node("/order/tisp")
- node("/order/activation/interception-type[list]")
...
- Type
- String (xpath) [String (suche nach value)]
...
- nodes(".")
- nodes(".","=='foobar'")
...
- Type
- String (xpath)
...
- nodeValue(node("/order/tisp"))
- nodeValue("/order/tisp")
...
- Type
- String (xpath)
...
- nodeValues(node("/order/activation/interception-type[list]")) = ["xxx", "yyy"]
- nodeValues("/order/activation/interception-type[list]") = ["xxx", "yyy"]
...
- String...
- Type (list)
- Array
...
- count("a", "b") = 2
- count(nodes(".")) = n
- count(node("/order/activation/interception-type[list]")) = n
...
- String, Array
- String, Number, Array
- String, String, Array
...
- arrayHelper("getFirst",nodes("."))
- arrayHelper("getLast",nodes("."))
- arrayHelper("removeNull",nodes("."))
- arrayHelper("removeDuplicate",nodes("."))
- arrayHelper("get",1,nodes("."))
- arrayHelper("removeEvery",2,nodes("."))
- arrayHelper("keepEvery",2,nodes("."))
- arrayHelper("startsWith","jax",nodes("."))
- arrayHelper("endsWith","jax",nodes("."))
- arrayHelper("contains","jax",nodes("."))
...
- String
- Number
- Array
...
- concat("A","B") = "AB"
- concat(integer(111111),integer(1112)) = 11111111112
- concat(nodeValues("/order/activation/interception-type[list]")) = "xxx-yyy"
...
getProcessReasons() = {
"reasons": [
{"processID": "123456", "type": "rejected", "message":"this is a message"},
{"processID": "123457", "type": "rejected", "message":"this is another message"}
]
}
Status: wird laufend ergänzt
Inhalt | ||
---|---|---|
|
Altersprüfung anhand des eingegebenen Geburtsdatums
Die folgende JEP-Regel kann z.B. verwendet werden, um auf Grundlage des eingegebenen Datums zu prüfen, ob eine Person volljährig ist oder nicht. (Ausgabe: true oder false)
Codeblock | ||
---|---|---|
| ||
DateTools(currentDate(), "-Y", nodeValue(varName_dateOfBirth)) >= 18 |
Regelauszug | Bemerkung |
---|---|
currentDate() | aktuelles Datum |
-Y | Differenz in Jahren der beiden Daten |
varName_dateOfBirth | Variablenname des Datumfelds |
>= 18 | IST grösser gleich 18 |
Ausgabe abhängig vom einem Wert
Im folgenden Beispiel soll eine Adresse ausgegeben werden. Jedoch sind nicht immer alle Werte vorhanden. Um nun nicht unschöne/unnötige Leerzeilen zu erhalten, wird über eine "if"-Abfrage eine dynamische Ausgabe verwendet:
Codeblock | ||
---|---|---|
| ||
"<p>" + if(firmenname != "" && firmenname != NULL, "" + firmenname + "<br/>", "")
+ if(firstName!= "" && firstName != NULL, "" + firstName + " " + lastName + "<br/>", "")
+ if(neueZusatzzeile != "" && neueZusatzzeile != NULL, "" + neueZusatzzeile + "<br/>", "")
+ if(neueStrasse != "" && neueStrasse != NULL, "" + neueStrasse + " " + neueHausnr + "<br/>", "")
+ if(neuesPostfach != "" && neuesPostfach != NULL, "Postfach " + neuesPostfach + "<br/>", "")
+ if(neuePLZ != "" && neuePLZ != NULL, "" + neuePLZ + " ", "")
+ if(neuerOrt != "" && neuerOrt != NULL, "" + neuerOrt + "", "") + "</p>" |
if(BEDINGUNG, FALSE, TRUE) > if( BEDINGUNG , "passiert wenn nicht der Bedingung entsprechend", "passiert wenn die Bedingung zutrifft")
Diese Art Ausgabe funktioniert überall, wo Als Formel interpretieren als Option gewählt werden kann.
Für mehrere IF Bedingungen können diese in einander verschachtelt werden. Etwa so: if(BEDINGUNG, FALSE, if(BEDINGUNG, if(BEDINGUNG, FALSE, TRUE), TRUE))
Anzeigeformat beeinflussen mit formattedNodeValue()
Wenn das Ausgabeformat nicht erwartungsgemäss ist, kann formattedNodeValue(VAR) helfen. Das Beispiel ergab "yyyy-mm-dd" (Englische Ausgabe eines Datums, obwohl im Datumswähler das DE Format verwendet wurde)
Codeblock | ||
---|---|---|
| ||
" + formattedNodeValue(f_tag) + " |
Dies führt zu tt.mm.jjjj
Berechnungen durchführen
Im gezeigten Beispiel wird im Hilfetext des Feldes (f_ComirnatyRacks) aufgrund der Eingabe eine Berechnung durchgeführt.
Beispielcode
Codeblock | ||
---|---|---|
| ||
"Racks zu 195 Vials. <span class='numb'>Die Eingabe ergibt ungefähr <strong>"
+ (f_ComirnatyRacks * 975) +
"</strong> Impfdosen</span>
<br/>Maximale Bestellmenge 20 Racks." |
Verwendet werden die üblichen Operatoren / * - + innerhalb der Klammern () > (f_ComirnatyRacks * 975)
Mehrere Berechnungen können in einer weiteren Klammer () zusammengesetzt werden > ((f_ComirnatyRacks * 975) / 2) oder ((f_ComirnatyRacks * 975) + (f_Kryoboxen10 / 10)).
Prüfen, ob das Formular im Frontend oder im Backend aufgerufen wird
Je nach Kontext ist es notwendig, Felder nur im Frontend oder nur im Backend anzuzeigen, zu sperren, etc.
Formularaufruf im Frontend:
JAX_ROLE > JAX_ROLE_PUBLIC
Formularaufruf im Backend:
JAX_ROLE < JAX_ROLE_PUBLIC
Prüfen, in welchem Status das Formular aufgerufen wird
Je nach Kontext ist es notwendig, Felder nur anzuzeigen, wenn der Formulareingang einen bestimmten Workflow-Status hat.
Nur bei übermittelten Formularen (Status-ID 4):
JAX_FORM_STATE == 4
Verwandte Themen
- Option «Als Formel interpretieren»
- Anzeigetext
- Bestätigungsseite mit Werten aus Formular
- Dateiupload > Filename statt GUID > Siehe Hinweis
...
- Number, String
- String, Number, String
...
Evaluiert einen Formelausdruck auf einem DOM eines Subprozesses eines Orders.
Wird keine GUID mitgegeben, wird der order auf welchem die Formel aufgerufen wird genommen.
...
- getProcessValue(110, "nodeValue("/Processing/processDefinitionID")")
- getProcessValue("7b8ad95f-b0d1-400d-b722-29f8f9510c2d", 110, "STATUS")
Um den DOM für den richtigen Subprozess zu bauen, ist zwingend immer die Sequenz des gewünschten Subprozesses anzugeben.
...
- Type, String
- String, String
Differenz zweier Datum
- Type, String, Type
- String, String, String
- String, String, Type
- Type, String, String
...
Pattern:
Für das Pattern wird ein gültiges ISO_DATE, ISO_TIME oder ISO_DATE_TIME entgegengenommen.
Modifier:
+, - oder == zusammen mit dem Datumstyp:
Y -> year
M -> month
D -> day
h -> hour
m -> minute
s -> second
S -> milli
...
- String
- String, boolean, boolean, boolean
...
- isPikettOrder("2019-08-01T09:59:51")
- isPikettOrder("2019-08-01T09:59:51", true, true, false)
String: Datum
boolean: checkWeekend (Samstag, Sonntag)
boolean: checkOfficeTime (Ausserhalb von 08:00 - 17:00)
boolean: checkFeiertage (Offizielle Schweizer-Feiertage)
...
Folgende Process Instructions sind verfügbar:
...