© istockphoto.com/Creative-idea, © S&S Media
Den weltweit erfolgreichen ISO-Standard für Workflows in .NET nutzen

Workflows mit BPMN automatisieren


BPMN ist der globale ISO-Standard für Prozessmodellierung und Workflowautomatisierung. Dabei geht es nicht darum, mit „Zero-Code“ die „lästigen Entwickler“ loszuwerden, sondern um fachlich lesbare Modelle, die mit technischen Attributen angereichert auf einer leichtgewichtigen Engine ausgeführt werden. Leider bietet Microsoft selbst keine Lösung an, weswegen oft Potenziale verschenkt werden – völlig unnötig! Dieser Artikel führt kurz in BPMN und automatisierbare Workflows ein und zeigt am Beispiel der Open-Source-BPM-Plattform von Camunda, wie man eine bestehende BPMN-Lösung in der .NET-Welt nutzen kann.

Workflowmanagement ist ein alter Hut. Das macht ihn aber nicht minder interessant. Wann immer Abläufe und „Geschäftsprozesse“ am Werk sind, werden diese mindestens als Anforderung grafisch modelliert. Dafür hat sich seit Jahren ein Standard etabliert, der weltweit auf dem Vormarsch ist: BPMN (Business Process Management and Notation) in der aktuellen Version 2.0. Der Clou: Diese Modelle können – um technische Details angereichert – direkt auf einer Engine ausgeführt werden. Die BPMN ist sehr mächtig, was die Abbildung von typischen Geschäftsprozessen angeht. Mit BPMN ist es zudem möglich, dass der real ablaufende Prozess immer gleich der grafischen Darstellung der Anforderung ist. Das erlaubt nicht nur ein fachliches Monitoring zur Laufzeit, sondern auch spätere Prozessänderungen ohne Archäologie im Softwaresystem. Denn Prozessmodelle sind nicht mehr nur stumme Zeugen einer längst vergangenen Wunschliste in der Anforderungsanalyse, sondern zentrale lebende Artefakte.

Eine typische Workflow-Engine bringt neben der Transparenz durch grafische Modelle weitere Features mit, die den Einsatz interessant machen. Dabei dreht es sich vor allem um langlaufende Prozesse, denn viele Prozesse können Wochen oder Monate andauern, bis sie abgeschlossen sind. Eine Workflow Engine kann daher zum Beispiel Wartezustände effizient verwalten und unterstützt zeitliche Eskalationen. Vorgefertigte Komponenten wie Aufgabenlisten oder Monitoringtools können das Leben weiter vereinfachen.

BPMN am Beispiel

Starten wir mit einem Beispiel. Stellen Sie sich vor, Sie möchten eine neue KFZ-Versicherung abschließen. Sie gehen ins Internet und geben alle notwendigen Daten ein. Nachdem Sie auf „Antrag senden“ geklickt haben, legt bei dem Versicherungsunternehmen Ihrer Wahl ein Geschäftsprozess los, zum Beispiel der in Abbildung 1 (für diesen Artikel natürlich stark vereinfacht).Ich möchte nur ein paar Hinweise zu dem Modell geben, da die Darstellung in BPMN glücklicherweise recht intuitiv ist:

  • Am Startevent „Antrag erhalten“ wird eine neue Prozessinstanz erzeugt.

  • „Risiko prüfen“ ist ein so genannter Business-Rule-Task. Hier wird eine Entscheidungstabelle angesprochen, die im Schwesterstandard DMN (Decision Model and Notation) definiert ist. Sie ermittelt, ob der Antrag vollautomatisiert angenommen oder abgelehnt wird. Nur im Zweifelsfall (gelbes Risiko) wird ein Mensch involviert.

  • „Risiken?“ ist ein so genanntes exklusives Gateway. Hier wird eine Routing-Entscheidung getroffen; der Prozessfluss muss genau einen ausgehenden Pfad nehmen. Dies ist abhängig von Daten im Prozess, in diesem Fall dem Ergebnis der Entscheidungstabelle zur Risikoprüfung.

  • „Neuantrag prüfen“ ist ein Usertask, also eine Aufgabe für einen Menschen. Diese wird über eine Aufgabenliste angezeigt und ein entsprechendes Formular bearbeitet. Der Prozess läuft weiter, sobald der Mensch seine Arbeit erledigt hat. Da dies beliebig lange dauern kann, ist ein Timerevent angeheftet, das bei Verzögerungen einen parallelen Zweig zur Eskalation anstößt.

  • „Police ausstellen“ ist ein Servicetask, hier wird eine bestehende Funktionalität eines Bestandsystems aufgerufen.

  • „Police zuschicken“ ist ein Send-Task, der sich technisch wie ein Servicetask verhält. Im Modell ist dadurch jedoch grafisch sichtbar, dass hier eine (asynchrone) Nachricht verschickt wird, in unserem Fall eine E-Mail.

  • Die Prozessinstanz beendet, sobald alle Pfade in einem End-Event, hier „Antrag policiert“ oder „Antrag abgelehnt“, angekommen sind.

ruecker_bpmn_1.tif_fmt1.jpgAbb. 1: Ein Versicherungsneuantrag in BPMN

In BPMN können beliebig viele Pfade parallel ausgeführt werden, sie müssen auch nicht symmetrisch modelliert werden. BPMN eignet sich immer dann, wenn alle Durchläufe eines Geschäftsprozesses dem gleichen Muster folgen. Dies ist in unserem Neuantrag gegeben. Wir sprechen von strukturierten Geschäftsprozessen oder eben Workflows. Typische Beispiele sind: Bestellung oder Antragseingang (z. B. DSL-Neuanschluss, KFZ-Versicherung, Kreditkarte, Klamotten), Bearbeitung einer Schadensmeldung (z. B. Haftpflicht, Autounfall), Lieferung (z. B. Paket). Das soll auch schon als Schnelleinstieg in BPMN genügen, bei Interesse empfehle ich einen Blick in [1] oder [2].

Der Prozess liegt nicht nur als Bild vor, sondern wird als XML-Datei abgespeichert. Das XML-Format ist standardisiert, sodass prinzipiell beliebige Modellierungswerkzeuge mit beliebigen Ausführungs-Engines gekoppelt werden können.

BPMN-Ausführbarkeit in .NET

Obwohl Microsoft selbst am BPMN-Standard mitgearbeitet hat, gibt es bis heute keine BPMN-Werkzeuge von Microsoft. Diverse Kunden haben uns weiterhin bestätigt, dass alle existierenden Workflowansätze in der .NET-Welt, wie z. B. die Windows Workflow Foundation, für ernsthafte Geschäftsprozesse nicht ausreichen und außerdem viel zu alt sind, um BPMN zu unterstützen. Daher muss man sich nach anderen Lösungen umsehen.

Camunda BPM

Eine Variante ist die Open-Source-BPM-Plattform von Camunda, die nativ BPMN 2.0 unterstützt und die Sie direkt unter [3] herunterladen können. Die Plattform selbst ist zwar in Java entwickelt und daher eigentlich in diesem Universum zu Hause, allerdings wird sie vermehrt auch im .NET-Umfeld eingesetzt – was nicht nur am Mangel an Alternativen liegt. Ich möcht...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Gewinner-Teams

Wir bieten Lizenz-Lösungen für Teams jeder Größe: Finden Sie heraus, welche Lösung am besten zu Ihnen passt.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang