5.1 Problemstellung |
|
Der Begriff des Kontrollflusses beruht darauf, dass ein Geschäftsprozess sozusagen eine Richtung hat, die durch die Abfolge der Tätigkeiten gegeben ist. Entsprechend hat dies auch eine Ereignisgesteuerte Prozesskette. |
|
Dabei kommt es, wie auch die Beispiele in Kapitel 4xxx zeigten, durch die Operatoren immer zu einer Aufspaltung in mehrere Zweige, die u.U. gleich oder später wieder aufgehoben werden muss. |
Aufspaltung des Kontrollflusses |
Die Syntaxregel ist nun, dass dafür derselbe Operator wie bei der Aufspaltung verwendet wird. Die folgende Abbildung zeigt dies für ein EPK-Fragment aus Kapitel 4xxx. Die drei Ereignisse nach der Funktion signalisieren unterschiedliche Erledigungsvarianten. Danach geht es aber „einheitlich“ weiter (d.h. die Varianten führen nicht zu unterschiedlichen Kontrollflusszweigen, was auch möglich wäre), sodass der Kontrollfluss mit einem exklusiven ODER wieder zusammengeführt und dann die nachfolgende Funktion eingefügt wird. |
Syntaxregel |

|
|
|
Abbildung 5.1-1: |
Aufteilen und Zusammenführen des Kontrollflusses |
|
|
|
5.2 Keine Aktion |
|
Eine etwas schwierigere Situation ergibt sich oftmals bei einem ODER-Operator, wenn mitmodelliert werden soll, dass u.U. auch keine der Aktionen nötig ist. Die folgende Abbildung zeigt ein Beispiel und im unteren Teil auch, wie man sich die Fortsetzung vorstellen kann. Das Ereignis Keine Aktion notwendig muss hinter das Schlussereignis der übrigen Ereignisse weitergeführt werden, da sonst gegen die Regel „Ereignisse und Funktionen lösen sich immer ab“ verstoßen würde. |
|

|
|
|
Abbildung 5.2-1: |
Ereignisverknüpfung / erzeugte Ereignisse / ODER |
|
|
|
Eine elegantere Lösung besteht hier darin auf dieses Ereignis der Nichtaktion zu verzichten und trotzdem aber einen Kontrollflusszweig (sozusagen einen Leerzweig) nach unten zu dem ODER-Operator zu führen, der den Kontrollfluss wieder zusammenführt. Die folgende Abbildung zeigt diese Lösung |
|

|
|
|
Abbildung 5.2-2: |
Ereignisverknüpfung / erzeugte Ereignisse / ODER |
|
|
|
Allerdings erfüllt diese Lösung nicht in vollem Umfang den ODER-Operator (vgl. dazu Kapitel 14xxx). |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |