Skip to main content
Skip table of contents

Verzweigungen

Verzweigung

Die exklusive Verzweigung ermittelt anhand von Bedingungen die ausgehende Kante.

 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.

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.

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 oder null 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.

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.


JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.