Keine Nachrichten = gute Nachrichten…?

 

Ein immer wieder aufkommendes Thema in meinen Schulungen ist die Beschriftung der Nachrichtenflüsse und der Gebrauch der Nachrichten. Folgender Eintrag soll etwas Klarheit im Umgang mit Nachrichtenflüssen und dem Nachrichten-Objekt schaffen. Gemäss „Methode und Stil“ ist folgende Situation absolut korrekt:


Aber ist es auch aussagekräftig?
Was aber, wenn ich den Dokumentenfluss der Bestellung, Bestätigung und/oder Kundeninfo modellieren will? In der BPMN 1.2 gab es die Möglichkeit, wie folgt zu modellieren:

Nun, dies ist seit der BPMN 2.0 nicht mehr möglich.
Es müssen neu sogenannte Nachrichten verwendet werden. Wie denn nun, wir haben doch eine Nachricht, nämlich „Bestellung“. Nein, wir haben einen Nachrichtenfluss Bestellung modelliert. Es gibt also zwei Elemente dafür, das Flussobjekt „Nachrichtenfluss“ und das Artefakt „Nachricht“. (Klammer auf: Nachrichten sind Artefakte, diese können je nach Modellierungstool wie zum Beispiel mit dem Process Modeler for Microsoft Visio (http://www.itp-commerce.com) wiederverwendet werden.) Weiter haben wir in der Methode und Stil Schulung gelernt, dass es eigentlich reicht, die Nachrichtenflüsse einzuzeichnen, die Nachrichten sind optional. Was nun, wenn ich die Nachrichtenflüsse nicht beschrifte und dafür Nachrichten verwende, welche beschriftet sind? Dies ist nach BPMN 2.0 korrekt und sogar von uns bei der „Methode und Stil“ Überprüfung wird dies (noch) nicht geahndet. Folgende Schreibweise ist korrekt und liefert keinen Fehler (BPMN und „Methode und Stil“):

Was handle ich mir damit aber ein?
Nun, beim Prozessstart nichts. Aber spannend wird es bei einer Kollaboration-Situation wie folgt:

Also keine Beschriftung des Nachrichtenflusses, dafür die Verwendung einer Nachricht. Im Unterprozess „Lager prüfen“ würden wir diese Nachricht auch verwenden:

Dies würde die Regel erfüllen, dass Nachrichten entweder angeschrieben sein sollten oder Nachrichten verwendet werden sollen. Nur es verstösst gegen die Regel, dass Nachrichten immer benannt werden sollen. Wird nun zusätzlich der Kunden-Pool im Unterprozess noch ausmodelliert (Orchestrierung des Kunden, was wir ja nicht empfehlen, aber hier aus Gründen der Erklärung mal so stehen gelassen werden kann), haben wir noch zusätzlich das Problem, dass die Nachrichtenflüsse auf deren konsistente Verwendung in der Prozess-Hierarchie nicht mehr erkannt werden können. Somit ist der gute Stil also wie folgt:

Folgende Stilregeln können demzufolge definiert werden:

  1. Wir verwenden also die Nachrichten-Objekte nur, wenn wirklich eine Information (Payload) über den Nachrichtenfluss transportiert wird.
  2. Wir benennen die Nachrichtenflüsse immer. Die Namensgebung ist wichtig – es soll der Nachrichtenfluss im Sinne des auslösenden Ereignisses benannt werden und nicht die zu transportierende Information.
  3. Nachrichten werden immer benannt und wenn immer möglich wiederverwendet, da es sich ja letztlich um ein Informationsobjekt (Artefakt) handelt, welches durchaus mehrfach verwendet werden kann in einem Prozess.

Ach ja, was ich noch fragen wollte:
Für wozu dient die Unterscheidung in weisse und graue Nachrichten (initiating = initiierend/beginnend)?

Ganz einfach: Wenn Sie BPMN Prozessmodellierung machen, vergessen Sie’s.
Wenn Sie BPMN Choreographien modellieren wollen, schauen Sie genauer hin. Dazu dann aber später ein eigener Artikel an dieser Stelle.