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: Inclusive Gateways Must Be Clever

In the previous post I have shown how the three most important gateway types behave when they are executed by a process engine. The inclusive gateway is very flexible. At an inclusive split, one or more exits can be selected. A corresponding inclusive merge waits until all selected paths have been completed.

However, what happens when there is another splitting gateway in one of these paths, so that in some cases the inclusive merge may not be reached via this path anymore? In order to ensure that such processes do not get stuck, inclusive gateways must be clever, since they need to determine via which paths they still can be reached.

In order to test this behavior, i have inserted a splitting exclusive gateway in the previous example.

Weiterlesen

BPMN Gateways in Action

It is hard to find a serious BPMN model without any splits in the control flow. Splits are modeled with gateways, represented by diamond symbols. The following video shows three variations of a little example process. First, we use an exclusive gateway in this process, then a parallel gateway, and finally an inclusive gateway. The execution of each process variant shows the different behaviours of the three gateway types.

If you want to try out these examples for yourself, you can download and execute them, using the community edition of the „Bonita“ platform.

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

Process Automation with BPM – Introductory Example

What exactly does it mean to execute a BPMN process? What else other than a process model is required for a useful process? I have created a little example for newcomers. It is explained in two videos. The project file can also be downloaded and executed in the community edition of the platform “Bonita”.

In the first video, the BPMN model is deployed to a process engine and executed. The video also shows how other required contents are specified: organization, data, user forms, decision rules and the integration of external systems.

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

BPMS mit RPA verbinden – am Beispiel Bonita und UIPath

Update 21.2.2024: Aufgrund einiger Änderungen in UIPath lässt sich dieses Beispiel in der aktuellen Version nicht mehr ausführen. Daher habe ich es mit einem anderen RPA-System, Microsoft Power Automate, neu erstellt. Dies ist in diesem Post beschrieben.


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

Connecting BPMS with RPA – using Bonita and UIPath

Update 21.02.2004: Due to some changes in UIPath, this example doesn’t run anymore on the current version. I have re-created the example using another RPA system (Microsoft Power Automate Desktop). See this post.


Robotic Process Automation (RPA) is very popular for automating routine tasks. However, RPA is not very good at controlling entire end-to-end-processes. This is the realm of Workflow or Business Process Management Systems. Therefore, it can be a good idea to connect BPMS with RPA. The BPMS manages the overall process flow. The different tasks in the process can either be user tasks or system calls via interfaces – or tasks that are performed by RPA bots.

The latest version of the BPMS Bonita (community edition) contains connectors to the RPA system UIPath. Vice versa, UIPath also provides connectors to Bonita. I have tested this integration using the following two examples:

  1. In the first example, order data are provided as Excel sheets. They are read by an RPA bot. Then the bot starts a Bonita process and hands over the order data.
  2. In the second example, a Bonita process calls an RPA bot in order to retrieve a currency exchange rate from a website.

Weiterlesen

Warum man eine Workflow-Engine braucht

Systeme zur Prozessausführung, meist als Workflow- oder Business-Process-Management-Systeme (BPMS) bezeichnet, können eine zentrale Rolle für die digitale Transformation von Unternehmen spielen. Dennoch gibt es Vorbehalte gegen den Einsatz derartiger Systeme. So gab es in der Vergangenheit oftmals schlechte Erfahrungen mit schwergewichtigen, zentralen Plattformen. Und im Zusammenhang mit modernen Microservice-Architekturen befürchten viele Entwickler, dass ein BPMS die möglichst unabhängigen Microservices zu eng aneinander koppelt.

Bernd Rücker gelingt es in seinem englischsprachigen Buch diese Vorbehalte zu entkräften. Dabei setzt er auf den Einsatz leichtgewichtiger, „Entwickler-freundlicher“ BPMS. Als Mitgründer der Firma camunda verfügt Rücker über jahrelange Erfahrung aus zahlreichen Kundenprojekten. Die Ausführungen in dem Buch sind aber unabhängig von einem bestimmten Produkt für jede Prozessautomatisierungsinitiative relevant.

Weiterlesen

Optimierte Abläufe in der Produktion mit IoT und BPMS

Ein interessanter Ansatz zum Einsatz einer Process Engine im Produktionsbereich wird in diesem Beitrag der Zeitschrift „Informatik Spektrum“ beschrieben. Es wird dargestellt, wie die Bedienung von Anlagen verbessert werden kann, indem Daten und Ereignissen aus dem Internet of Things (IoT) mit einem BPM-System verknüpft werden. Dabei werden die von Anlagenbedienern durchzuführenden Prozesse in BPMN modelliert und durch eine Process Engine gesteuert.

Weiterlesen