BPMN in Action: Kommunikation von Prozessen über eine Message Queue

Im letzten Beitrag ging es darum, dass ein auf einer Process Engine ausgeführter Prozess mit einem zweiten Prozess kommuniziert, der auf einer anderen Process Engine installiert ist. Dabei wurde die REST-Schnittstelle der zweiten Process Engine genutzt. Da die REST-Schnittstellen von Process Engines nicht standardisiert sind, müssen die Aufrufe speziell an die zweite Engine angepasst werden.

Flexibler ist der im folgenden Beispiel gezeigte Ansatz, bei der eine Message Queue (Nachrichtenwarteschlange) genutzt wird. Dabei stellen die beteiligten Prozesse gesendete Nachrichten in eine von einem Message Broker verwaltete Warteschlange hinein und entnehmen für sie bestimmten Nachrichten daraus. Mit diesem Verfahren ist es auch einfacher, eine der beteiligten Process Engines auszutauschen. Ebenso kann ein Prozess mit einem komplett anderen System kommunizieren, z. B. einem ERP-System. Dies wird im Beispiel mit Hilfe einer kleinen, selbst geschriebenen Java-Klasse gezeigt, die die Rolle des zweiten Prozesses übernimmt.

Weiterlesen

BPMN in Action: Zusammenspiel zweier Process Engines

Wie im vorangegangenen Beitrag gezeigt wurde, kann man mit BPMN separate Prozesse modellieren, die über Nachrichtenflüsse kommunizieren. Damit eine solche Kollaboration mehrerer Prozesse ausgeführt werden kann, müssen sie beide in ein und derselben Process Engine laufen. Gehören die Prozesse, die zusammenspielen sollen, jedoch zu verschiedenen Geschäftspartnern mit ihren jeweils eigenen BPM-Systemen, dann laufen die Prozesse in verschiedenen Process Engines.

Im Video wird gezeigt, wie die Kommunikation über eine REST-Schnittstelle erfolgen kann. Hierbei wird der eine Prozess in Bonita ausgeführt, der andere in Camunda. Der Bonita-Prozess tauscht Nachrichten mit einem Hilfsprozess aus, der sich um die Kommunikation mit dem Camunda-Prozess über die von Camunda bereitgestellte REST-Schnittstelle kümmert.

Download

Die folgende zip-Datei enthält die Bonita-Projektdatei und den BPMN-Prozess für camunda.

Weiterlesen

BPMN in Action: Zusammenspiel von Prozessen mit Nachrichtenflüssen

Eine Besonderheit von BPMN gegenüber anderen Prozessmodellierungsnotationen besteht darin, dass man Kollaborationen modellieren kann – also das Zusammenspiel von zwei oder mehr eigenständigen Prozessen, die Nachrichten miteinander austauschen. So kann ein Prozess eine Nachricht verschicken und dadurch einen anderen Prozess starten, oder es wird eine Nachricht an eine existierende Prozessinstanz verschickt, die an einem nachrichtenempfangenden Zwischenereignis bereits auf diese Nachricht gewartet hat.

Oft nutzt man Nachrichtenflüsse um das Zusammenspiel der Prozesse unterschiedlicher Geschäftspartner zu modellieren, z. B. zwischen dem Beschaffungsprozess eines Kunden und dem Angebotsprozess eines Lieferanten. Allerdings nutzen diese in der Regel nicht gemeinsam dasselbe BPM-System. Ist es auch sinnvoll, Kollaborationen innerhalb einer Organisation zu verwenden – obwohl man dasselbe Verhalten meist auch durch einen einzigen Prozess mit mehreren Lanes erzielen könnte?

Durchaus – die Aufteilung in separate Prozesse unterstützt lose Kopplung, Wiederverwendung und Trennung von Verantwortlichkeiten.

Im Video wird die Modellierung und Ausführung einer Kollaboration gezeigt. Außerdem wird erläutert, wie man mit Hilfe einer Korrelation dafür sorgt, dass die Nachrichten bei den richtigen Prozessinstanzen ankommen.

Weiterlesen

BPMN in Action: Unterprozesse/Aufrufaktivitäten

Was passiert bei der Ausführung eines BPMN-Prozesses, wenn eine Aktivität erreicht wird, die am unteren Rand mit einem Plus-Symbol (+) markiert ist? Das Plus-Symbol bedeutet, dass dieser Aktivität ein detaillierteres BPMN-Modell hinterlegt ist. Beim Erreichen der Aktivität beginnt die Ausführung des hinterlegten Modells. Wenn dieser Detailprozess beendet ist, wird die Ausführung des Hauptprozesses fortgesetzt.

Man unterscheidet „echte“ Unterprozesse und Aufrufaktivitäten. Ein Unterprozess ist Teil des übergeordneten Prozesses und kann auch auf dessen Daten zugreifen. Eine Aufrufaktivität hingegen ruft einen separaten Prozess auf. Diesem werden beim Aufruf die benötigten Daten explizit übergeben. Ebenso kann der aufgerufene Prozess nach Beendigung Daten an den Hauptprozess zurückgeben. Anders als bei Unterprozessen ist es bei Aufrufaktivitäten möglich, ein und denselben Prozess aus verschiedenen anderen Prozessen heraus aufzurufen. Somit kann der aufgerufene Prozess wiederverwendet werden.

Da das Konzept der Aufrufaktivitäten flexibler ist, verzichten manche BPM-Systeme darauf, Unterprozesse als separates Konzept zu unterstützen. In dem Beispiel in dem Video wird ebenfalls eine Aufrufaktivität verwendet.

Weiterlesen

BPMN: Inklusive Gateways müssen schlau sein

Im vorangehenden Beitrag wurde gezeigt, welche Unterschiede die drei wichtigsten Gateway-Typen in der Ausführung durch eine Process Engine haben. Besonderes flexibel ist der inklusive Gateway. An einer inklusiven Verzweigung können ein oder mehrere Ausgänge gewählt werden. Entsprechend wird an einer inklusiven Zusammenführung darauf gewartet, dass alle gewählten Pfade abgeschlossen sind.

Was aber, wenn einer dieser Pfade eine Abzweigung enthält, und daher die Zusammenführung über diesen Pfad möglicherweise gar nicht mehr erreicht wird? Damit Prozesse in solchen Fällen nicht hängen bleiben, müssen inklusive Gateways schlau sein und überprüfen, über welche Pfade noch etwas ankommen kann.

Um dies auszuprobieren, habe ich in den Prozess aus dem vorigen Beispiel eine Abzweigung eingefügt.

Weiterlesen

BPMN-Gateways in Aktion

Kaum ein BPMN-Modell kommt ohne Verzweigungen aus. Modelliert werden sie mit Hilfe von Gateways, dargestellt durch Rautensymbole. In einen kleinen Beispielprozess werden nacheinander die wichtigsten unterschiedlichen Gateway-Typen (exklusiv, parallel und inklusiv) eingebaut. Die Ausführung in einer Process Engine macht deutlich, welches Verhalten jeweils erzielt wird.

Wer die Beispiele selbst ausprobieren möchte, kann sie wieder herunterladen und in der Community-Edition der Plattform „Bonita“ ausführen.

Weiterlesen

Prozessautomatisierung mit BPMN – Einführendes Beispiel

Was genau versteht man darunter, einen BPMN-Prozess auszuführen? Was braucht man neben dem grafischen Prozessmodell noch, damit ein sinnvoller Ablauf möglich ist? Um Neulingen den Einstieg in die Thematik zu erweitern, habe ich ein kleines Beispiel erstellt, das ich in zwei Videos vorstelle. Zudem kann die Projektdatei heruntergeladen und in der Community-Edition der Plattform „Bonita“ ausgeführt werden.

Im ersten Video zeige ich, wie das BPMN-Modell auf eine Process-Engine hochgeladen und ausgeführt wird. Anschließend wird gezeigt, wie die weiteren Inhalte festgelegt werden: Organisation, Daten, Formulare, Entscheidungsregeln und die Einbindung externer Systeme

Weiterlesen

Führungsqualitäten sind für CIOs wichtiger als Technologieverständnis

Wer bisher annahm, dass sich ein guter IT-Leiter vor allem mit Technologie auskennen muss, wird durch eine kürzlich erschiene Studie eines Besseren belehrt: Die befragten Chief-Information-Officer (CIO) schätzen Führungsqualitäten und persönliche Kompetenzen als wichtiger für ihren Erfolg ein als ein gutes Verständnis von IT-Technologien oder Betriebswirtschaft.

Es wurde untersucht, welche Hintergründe CIOs haben, wie sie neue Herausforderungen angehen und welche Faktoren sie erfolgreich machen. Hierfür wurden zahlreiche CIO-Lebensläufe sowie Stellenanzeigen für CIOs analysiert, zudem wurden Expertengespräche und eine Online-Erhebung durchgeführt.

Weiterlesen

Online-Vortrag „Booster für Geschäftsprozesse“

Im Rahmen einer öffentlichen Online-Vortragsreihe unserer Hochschule werde ich am 24. September über aktuelle Ansätze zur Prozessautomatisierung sprechen. Ob Process-Mining, Robotic-Process-Automation, Workflow-Management, Low-Code oder künstliche Intelligenz – es gibt viele spannende Ansätze und Technologien. Wie lassen sie sich voneinander abgrenzen? Wofür sind welche Systeme am besten geeignet? Wie sieht ein sinnvolles Zusammenspiel aus um tatsächlich … Weiterlesen

BPMS mit RPA verbinden – am Beispiel Bonita und UIPath

Robotic-Process-Automation (RPA) ist sehr beliebt um Routineaufgaben zu automatisieren. Andererseits eignet sich RPA nicht dazu, gesamte Ende-zu-Ende-Prozesse zu steuern. Dies ist die Stärke von Workflow- oder Business-Process-Management-Systemen (BPMS). Es liegt daher nahe, BPMS und RPA miteinander zu verbinden. Das BPMS kümmert sich um den Gesamtablauf. Bei den einzelnen Aufgaben innerhalb des Prozesses kann es sich entweder um Benutzer-Tasks oder um Systemaufrufe über Schnittstellen handeln – oder aber um Tasks, die von RPA-Bots ausgeführt werden.

In der Community Edition des BPMS Bonita stehen hierfür seit Kurzem Konnektoren zum RPA-System UIPath zur Verfügung. In UIPath kann man ebenfalls Konnektoren zu Bonita nutzen. Zum Testen habe ich einmal zwei kleine Beispiele erstellt:

  1. Im ersten Beispiel liegen Auftragsdaten in Form eines Excel-Sheets vor. Sie werden von einem RPA-Bot eingelesen, der anschließend einen Bonita-Prozess startet und diesem die Daten übergibt.
  2. Im zweiten Beispiel ruft ein Bonita-Prozess einen RPA-Bot auf, damit dieser einen aktuellen Wechselkurs aus einer Webseite ausliest.

Weiterlesen