Gateways
Gateway
An exclusive gateway determines the starting edge on the basis of specific conditions.
An exclusive gateway recognizes 2 types of starting edges
Conditional flow: The edge verifies a condition
Default flow: Default flow is selected if none of the previously checked conditions apply
Conditional gateway
The conditions are maintained in the starting edges of the gateway. The language used here is currently still Java EL (expression language) and not Groovy.
More complex reports should therefore be checked in a downstream script task to ensure that the conditions will only have to check a few variables.
Default flow is an option in the properties of the edge. Only one edge can have this option.
Event-based gateway
You can control the process flow via the event-based gateway in such a way that its later path depends on the first occurrence of an intermediate event. For more information please read the chapter on intermediate events.
Formulation of conditions/logical expressions - Java EL (expression language) syntax
Operators
Arithmetic: +, -, *, /
Logical: and, or, not
Relational: ==, eq, !=, ne, <, lt, >, gt, <=, ge, >=, le
Empty: The
empty
operator can precede the expression to check the value for "empty" ornull
. The variable must exist.Conditional:
A ? B
: C. Ternary "if" command
Reserved words
and | or | not | eq |
ne | lt | gt | le |
ge | true | false | null |
instanceof | empty | div | mod |
Syntax check
The expression syntax will be checked upon leaving the condition field in the edge properties. The validity or notation of variables or operators will, however, not be checked.
Examples for EL expressions
Expression | Variable | Result |
---|---|---|
${intVar gt (4/2)} | intVar=1 | false |
${doubleVar le 3} | doubleVar=3‘ | true |
${stringVar eq "ABC"} | stringVar="ABC" | true |
${(10*10) ne 100} | false | |
${'a' lt 'b'} | true | |
${not booleanVar} | booleanVar=true | false |
${!empty param} | param=null or param=”” | false. |