Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

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"} 
    ] 

}

/ Variablen und Formaten

Status: wird laufend ergänzt

Inhalt
maxLevel2

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
languagexml
DateTools(currentDate(), "-Y", nodeValue(varName_dateOfBirth)) >= 18


RegelauszugBemerkung
currentDate()aktuelles Datum
-YDifferenz in Jahren der beiden Daten
varName_dateOfBirthVariablenname des Datumfelds
>= 18IST 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
languagexml
"<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
languagexml
" + 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.

Image Added

Beispielcode

Codeblock
languagexml
"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

...

  • 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(&quot;/Processing/processDefinitionID&quot;)")
  • 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.

...

Rechnen mit Datum
  • 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:

...