ACTION BPMN #99 – Was ist denn eine Schleife? Gast: Prof. Volker Stiehl

In der aktuellen EPISODE tauchen *Mirko Pawlak* und *Prof. Volker Stiehl* (*TH Ingolstadt*) tiefer in die Wissensvermittlung der BPMN-Modellierung ein. Diesmal dreht sich alles um das Thema *Schleifen* – von unschönen „Geisterfahrern“ über Schleifenmarkierungen bis hin zu Multi-Instance-Schleifen in der Praxis. — Die wichtigsten Meilensteine & Lerninhalte:

  • *Das Problem der expliziten Schleifenmodellierung:*
  • *Geisterfahrer:* Sequenzflüsse, die entgegen der Modellierungsrichtung (von links nach rechts) zurückführen, machen große Modelle unübersichtlich.
  • *Unsaubere Gateways:* Gateways sollten nicht gleichzeitig zusammenführen und verzweigen („Spinne“). Eine klare Trennung in zusammenführende und verzweigende Gateways ist Best Practice.
  • *Abweisende (faule) vs. nicht-abweisende (fleißige) Schleifen:* Unterscheidung, ob die Bedingung vor (Test before = true) oder nach der Ausführung geprüft wird.
  • *Standardschleifenmarkierung (Standard Loop Marker):*
  • Wird als gekrümmter Pfeil unten im Aktivitäts-Symbol dargestellt.
  • Da visuell nicht erkennbar ist, wann die Schleife endet und ob sie faul oder fleißig ist, müssen Attribute wie `testBefore` und `endCriteria` per *Textannotation* und *Assoziation* ergänzt werden.
  • Default-Verhalten: Fleißige Schleife (`testBefore = false`).
  • *Mehrfach-Instanzmarkierungen (Multi-Instance):*
  • *Sequentiell (drei waagerechte Striche):* Die Aufgaben werden nacheinander abgearbeitet (wie bei einer klassischen `for`-Schleife über eine Liste).
  • *Parallel (drei senkrechte Striche):* Alle Instanzen werden gleichzeitig gestartet und unabhängig voneinander ausgeführt.
  • *Best Practice:* Bei Verwendung einer Multi-Instance-Markierung sollte stets ein passendes *Datenobjekt* (Liste) im Modell ergänzt werden, aus dem die Anzahl der Durchläufe hervorgeht.
  • *Praxis-Demo in der Engine:*
  • Prof. Stiehl zeigt die praktische Konfiguration von `Collection` (z. B. eine Namensliste im JSON-Format) und `Element Variable` (`name`).
  • Demonstration der Ausführung im Cockpit: Wie parallele Instanzen eigene Variablen-Kontexte erhalten und wie sequentielle Schleifen Schritt für Schritt die Listen-Elemente abarbeiten.

— Die Timeline:
00:06 – Intro & Rückblick auf „Progressive BPM“
02:24 – Thema der Folge: Schleifen in BPMN
03:07 – Explizite Schleifenmodellierung: Geisterfahrer und unsaubere Gateways
06:25 – Abweisende (faule) vs. nicht-abweisende (fleißige) Schleife
07:39 – Die Standardschleifenmarkierung (Standard Loop Marker)
09:33 – Textannotationen und Assoziationen zur genauen Spezifikation
10:56 – Das Attribut `testBefore` & Default-Verhalten
14:35 – Das Attribut `endCriteria`
17:15 – Mehrfach-Instanzmarkierung (Multi-Instance) & Datenobjekte
22:43 – Unterschied: Parallele vs. Sequentielle Mehrfach-Instanzmarkierung
26:50 – Schleifenmarkierungen bei Unterprozessen
28:52 – Best Practice: Modellieren ohne Geisterfahrer (rein von links nach rechts)
30:20 – Praxis-Demo: Konfiguration im BPMN-Modeler (Multi-Instance & Collections)
41:08 – Live-Ausführung im Cockpit: Parallele Instanzen & Variablen-Kontexte
46:45 – Live-Ausführung: Sequentielle Instanzen im Durchlauf
47:57 – Live-Ausführung: Standardschleife in der Praxis
51:57 – Ausblick auf das nächste Thema: Kollaborative Prozesse & Nachrichtenfluss