Blog

dranbleiben!

technology
Oliver Frietsch

Prozesse mit BPMN digitalisieren

Für qualitativ hochwertige Arbeitsergebnisse, auch bei wechselndem Personal, sind standardisierte Prozesse unabdingbar. Im Rahmen der allgegenwärtigen Digitalisierung sollen immer mehr dieser Prozesse durch IT-Systeme unterstützt werden.

An dieser Stelle kommt meist sofort die Frage auf, wie die Prozesse - die von einer Fachabteilung entwickelt wurden und hier auch am besten verstanden werden - von einer IT-Abteilung verlustfrei umgesetzt werden können. Es braucht eine gemeinsame Transformations-“Sprache” für die Prozesse.

Die Business Process Modelling Notation (BPMN) gibt eine auf Fachebene verständliche grafische Prozessdarstellung an die Hand. BPMN eignet sich dabei bereits als Beschreibung von Prozessen, die noch in reiner Handarbeit stattfinden - lange bevor die IT-Abteilung sie zu sehen bekommt.

Dennoch sind BPMN-definierte Prozesse auch aus IT-Sicht maschinell ausführbar. Der Markt hält bereits einige Workflow-Engines bereit, in dem die IT-Abteilung einzelne Aufgabentypen - etwa den Versand einer E-Mail - mit Programmcode hinterlegen und dann direkt in die Ausführung geben kann. Die Fachabteilung muss dabei nichts über die genaue Umsetzung wissen - sie zeichnet zunächst einfach nur den Prozess auf.

Im Folgenden nutzen wir Zeebe als Beispiel einer Workflow-Engine. Zeebe bietet einen BPMN-Editor und führt die so erstellten Prozesse verteilt aus.

Zeebe BPMN Editor

Unser Beispiel startet mit dem Start Event links, hier dem Eingang einer Bestellung in einem Online-Shop.

In Folge erhält der Kunde zunächst eine Bestätigung, etwa per E-Mail. Dabei handelt es sich um einen auszuführenden Task.

Es folgt ein Exclusive Gateway, eine Fallunterscheidung auf Basis von (Eingangs-)Daten im Workflow. Hat der Kunde sich für eine Zahlung bei Erhalt des Pakets entschieden, kann die Ware sofort versandt werden und das Lager entsprechend angewiesen werden - der folgende Task.

Handelt es sich dagegen um eine Vorkasse-Bestellung, kann der Prozess nicht am Stück durchlaufen werden. Es muss zunächst darauf gewartet werden, dass der Kunde die versprochene Vorkasse auch leistet. Hier kommt nun ein Intermediate Event zum Einsatz, das die Ausführung so lange pausiert, bis ein bestimmtes Ereignis eintritt. Genauer, das Message Intermediate Catch Event wartet auf das Eintreffen einer Nachricht. Im Beispiel warten wir etwa auf das Eintreffen einer Meldung der Hausbank, dass die passende Überweisung eingegangen ist. Dabei muss die Meldung nur an die Workflow Engine gerichtet werden, nicht aber an den einzelnen Workflow. Denn die Engine findet automatisch den richtigen Workflow anhand eines zuvor festgelegten Subscription Correlation Keys, auf dessen Basis Daten im Workflow mit Daten der Meldung verglichen werden. Guter Kandidat wäre hier etwa die Bestellnummer.

Nach Eintreffen der Meldung wird die Ausführung des Prozesses fortgesetzt, der Versand durch das Lager angewiesen, und schließlich wird das End Event erreicht. Der Prozess ist erfolgreich abgeschlossen.

Es bleibt die Frage, wie sieht die technische Umsetzung “dahinter” aus?

Tasks können mit Zeebe in allen Programmiersprachen implementiert werden, die Unterstützung für das Protokoll gRPC bieten, darunter C#, C++, Dart, Go, Java, Kotlin, Node/JavaScript, Objective-C, PHP, Python und Ruby. Durch gRPC-Nachrichten registriert sich der damit implementierte Job Worker bei der Workflow Engine und teilt mit, dass er Tasks/Jobs eines bestimmten Typs abarbeiten kann. In BPMN hat jeder Task auch einen definierten Typ, womit die Zuordnung auch schon gegeben ist. Die weitere Kommunikation erfolgt ebenfalls via gRPC.

Es finden sich auch bereits zahlreiche “Wrapper” Job Workers, etwa einer, der Aufgaben an Lambda-Funktionen in Amazon AWS weiter delegiert und so das Potenzial der Cloud mit Workflows zusammenbringt.

Ähnlich universell geht es beim Absetzen von Meldungen für Intermediate Events zu; auch hier eignet sich jede Programmiersprache mit gRPC-Support, oder nach Wahl einfach der Aufruf eines kleinen mitgelieferten CLI-Tools von Zeebe.

In Summe handelt es sich um eine wirklich universelle Lösung, die für uns auch schon bei ersten Kunden im Einsatz ist. Die Einrichtung von Zeebe gelingt via Kubernetes; danach arbeitet das System unauffällig und bietet eine Weboberfläche für die Nachverfolgung von Workflows, ihrer Eingabedaten und Ergebnisse.

none
Conventic Icon

Standort Bonn

Burgstraße 69
53177 Bonn
Deutschland
+49 228 76 37 69 70
hello@conventic.com

Standort Braunschweig

Westbahnhof 11
38118 Braunschweig
Deutschland
+49 228 76 37 69 70
hello@conventic.com

Wir sind Mitglied bei

Grouplink Icon
Software Allianze Icon
Hubwerk Icon

Newsletter abonnieren

Twitter Icon
Facebook Icon
Instagram Icon
Xing Icon
LinkedIn Icon
Impressum, Haftungsausschluss und Datenschutzerklärung
© 2021 conventic GmbH · Alle Rechte vorbehalten.