Verzweigungen
Verzweigung
Die exklusive Verzweigung ermittelt anhand von Bedingungen die ausgehende Kante.
![](../../../__attachments/8095688/bpm.palette.48x48.ExclusiveGateway.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Die Exklusive Verzweigung kennt 2 Arten von ausgehenden Kanten
Bedingter Fluss: Die Kante prüft eine Bedingung
Standard-Fluss: Trifft keiner der zuvor ausgewerteten Bedingungen zu, wird der Standardfluss gewählt
Bedingte Verzweigung
Die Bedingungen werden in den ausgehenden Kanten des Gateways gepflegt. Die hier benutzte Sprache ist zurzeit noch die Java EL (Expression Language) und nicht Groovy.
![](../../../__attachments/8095688/BPMN_Model_Gateways.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
BPMN_Model_Gateways.png
Komplexere Auswertungen sollten daher in einer vorgelagerten Skript-Aktion ausgewertet werden, so dass die Bedingungen nur wenige Variablen prüfen müssen.
Der Standardfluss ist eine Option in den Eigenschaften der Kante. Nur eine Kante kann diese Option tragen.
![](../../../__attachments/8095688/BPMSuite_Properties_Conditi.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
BPMSuite_Properties_Conditi.png
Ereignisbasierte Verzweigung
Sie können durch die ereignisbasierte Verzweigung den Prozessfluss so steuern, dass der weitere Verlauf vom ersten Eintritt eines Zwischenereignisses abhängt. Details dazu finden Sie im Kapitel zu den Zwischenereignissen.
Formulierung von Bedingungen/logischen Ausdrücken - Syntax der Java EL (Expression Language)
Operatoren
Arithmetic: +, -, *, /
Logical: and, or, not
Relational: ==, eq, !=, ne, <, lt, >, gt, <=, ge, >=, le
Empty: Der
empty
Operator kann dem Ausdruck vorangestellt werden, um den Wert auf leer odernull
zu prüfen. Die Variable muss aber vorhanden sein.Conditional:
A ? B
: C. Tenäre if-Anweisung
Reservierte Wörter
and | or | not | eq |
ne | lt | gt | le |
ge | true | false | null |
instanceof | empty | div | mod |
Syntaxprüfung
Beim Verlassen des Bedingungsfeldes in den Eigenschaften der Kante wird die Syntax des Ausdruckes geprüft. Die Gültigkeit bzw. Schreibweise von Variablen oder Operatoren wird hingegen nicht geprüft.
![](../../../__attachments/8095688/image2013-05-03%2009.10.41.png?inst-v=01ce9f95-f40d-424e-a7da-0f3a4bad5824)
Beispiele von EL-Ausdrücken
Ausdruck | 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. |