Die fundamentale Änderung in der BPMN 2.0

Harmlos, ja geradezu unscheinbar schienen die Änderungen bei den Pools von der BPMN 1.2 zur BPMN 2.0 zu sein. Schauen wir aber genauer, nichts bleibt wie es mal war…

Der Weg zur Erkenntnis führt entweder über eine Analyse der BPMN 2.0 XML oder aber über einen Anwendungsfall. Ersteres ist in aller Regel nicht die Präferenz der Prozess-Analysten. Vielmehr stehen wir z.B. vor folgender Problematik. Wir haben ein Top-Level Diagramm modelliert (Quelle: eCH0074, Beispiel aus Kap.8 „Einreiseregelung GWA“  und auf „Methode & Stil“ adaptiert), das in etwa wie folgt aussehen könnte:


Der hauptsächliche Fehler, welchen wir in den Schulungen, Zertifizierungen und/oder Kundenprojekten immer wieder antreffen ist der Folgende:

Unterprozess wird zum Pool in der Kind-Ebene:

Wird Unterprozess „Eingabeprüfung durchführen“ auf eine neue Prozess-Ebene erweitert, wird oft folgendes modelliert:

Es wird ein Pool eingezeichnet („Eingabeprüfung durchführen“) und mit dem Label des Unterprozesses angeschrieben.

Auswirkung:

Seit der BPMN 2.0 sind Pools lediglich noch grafische Elemente, welche im XML als „Process“ gespeichert werden. Das heisst nun, jeder Pool entspricht nun genau einem Prozess.

XML-Fragment:

<process
id=“_12bf0a71-1009-40ad-961e-23d9f5fea3bc“
name=“Einreisegesuch Prozess“
processType=“None“>

<process id=“_8941d7d9-c9cf-4313-93e9-ca44fefeae8a“
name=“Eingangsprüfung durchführen“
processType=“None“>

Wir haben also einen ‚leeren‘ Unterprozess „Eingabeprüfung durchführen“. Warum leer?

Erklärung:

Hierzu muss man eine andere Änderung der BPMN 2.0 verstehen. Unterprozesse sind in der BPMN 2.0 immer „eingebettet“. Das heisst, Unterprozesse sind keine eigenständigen Prozesse mehr. Zu erkennen eben daran, dass das oberste Element in der XML ein <process> ist und der Unterprozess in einem eigenen Tag <subProcess> im Prozess eingebettet ist.

Durch das Einzeichnen des Pools „Eingabeprüfung durchführen“ haben wir lediglich einen zusätzlichen Prozess auf der Unterprozessebene eingeführt. Der Unterprozess selber hat nun aber KEINERLEI Elemente eingebettet.

Lösung:

In der BPMN 2.0 „erben“ die Kind-Ebenen in Unterprozessen die Pools der übergeordneten Ebenen. Das heisst, es ist unnötig diesen Pool nochmals einzuzeichnen. Dies kann aus Darstellungsgründen gemacht werden – hier muss aber das Modellierungswerkzeug sauber arbeiten  und eine Funktion anbieten, welche es ermöglicht, den auf der Kind-Ebene eingezeichneten Pool als identischen zu seinem Top-Level Pool zu  identifizieren (dies kann beispielsweise mit dem Process Modeler for Microsoft Visio genauso gemacht werden).