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: 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

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

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