Bei der Automatisierung von End-to-End-Prozessen müssen häufig verschiedene Anwendungen und Systeme integriert werden - nur wenig findet auf der grünen Wiese statt und hat keinerlei Schnittstellen. Doch selbst wenn dies der Fall ist, bieten Wiederverwendbarkeit und Low-Code einige Vorteile bei der Automatisierung von Prozessen - wie diese implementiert werden, ist jedoch entscheidend.
Wäre es nicht praktisch, wenn man verschiedene Funktionalitäten einfach und unkompliziert in unterschiedlichen Prozessen verwenden könnte? Das betrifft sowohl Basis-Funktionalitäten wie das Versenden einer E-Mail, das Erzeugen einer Rechnung oder das Speichern eines Dokuments, als auch prozessspezifische Aufgaben wie das Reservieren eines bestimmten Produktes in einem Warenlager - also nahezu alle Aktivitäten eines Prozesses.
Über die Verwendung von BPMN haben wir ein Low-Code-Tooling und eine Sprache an die Hand bekommen, um uns gemeinsam mit dem Fachbereich über den Ablauf eines Prozesses zu unterhalten. Außerdem haben wir Prozessexperten in die Lage versetzt, gemeinsam mit Entwicklern automatisierbare Workflows zu entwerfen.
Es mag sogar Anbieter von Zero-Code-Tools am Markt geben, die eine Automatisierung komplett ohne Entwickler versprechen. Um diese Art von Low-Code oder Wiederverwendbarkeit geht es in dieser Blogreihe aber nicht.
Für uns bedeutet Low-Code, dass Entwickler mit Standard-Technologien Funktionalitäten bereitstellen, die einfach wiederverwendet werden können.
Bei der Landeshauptstadt München haben wir im Projekt DigiWF, in dem vieler der hier vorgestellten Konzepte erarbeitet und angewendet wurden, genau dieses Vision-Statement definiert. Wir entwickeln unter Einsatz von offenen Standards Wiederverwendbarkeit für den Fachbereich.
Wiederverwendbare Prozessbausteine werden dabei von Entwicklern bereitgestellt und bei der Prozessmodellierung verwendet. Dadurch können Modelle einheitlicher gestaltet und die Modellierung vereinfacht werden. In einfachen Prozessen ist es uns sogar möglich, vollständig auf Entwickler zu verzichten. Low-Code durch Eigenentwicklung - in diesem Fall kein Widerspruch, sondern unser Vision-Statement.
In diesem ersten Blogpost der Reihe werden die grundlegenden Konzepte vorgestellt und aufgezeigt, welcher Nutzen für die Prozessmodellierung dadurch entstehen kann.
Doch welche Eigenschaften müssen Schnittstellen und Aktivitäten erfüllen, damit sie in verschiedenen Prozessen wiederverwendet werden können?
Eine Aktivität im Sinne der BPMN zeichnet sich dadurch aus, dass sie Daten für die Ausführung übergeben bekommt, Logik ausführt und Daten für die weiteren Schritte des Prozesses liefert.
Um Wiederverwendbarkeit bei einem Prozessbaustein zu ermöglichen, sollten zunächst die Schnittstellen definiert werden. Welche Daten werden für die Verarbeitung benötigt und welche Daten werden für die weitere Ausführung bereitgestellt?
Bei der Automatisierung von Workflows kann in den entsprechenden Schnittstellen auf Daten zugegriffen werden, die sich in verschiedenen Kontexten befinden:
Ein Task hat stets auf die eigenen und die übergeordneten Daten Zugriff. Durch das Input- / Output-Mapping können einzelne Tasks in unterschiedlichen Kontexten wiederverwendet werden.
Wenn eine Aktivität in verschiedenen Prozessen wiederverwendet werden soll, sollte der Zugriff auf die Daten einheitlich erfolgen. Hier besteht die Möglichkeit, Daten prozessübergreifend unter dem gleichen Schlüssel zur Verfügung zu stellen oder ausschließlich auf die lokalen Daten der Aktivität zuzugreifen. Aus verschiedene Gründen bietet es sich an, ausschließlich auf lokale Variablen zuzugreifen:
Das Gleiche gilt für das Bereitstellen von Daten. Entweder stellt die Schnittstelle lokale Daten bereit oder schreibt diese direkt in einen übergeordneten Scope der Aktivität. Auch hier sprechen die gleichen Argumente dafür, ausschließlich lokale Variablen zu schreiben und bei der Modellierung ein manuelles Mapping der bereitgestellten Daten zu definieren.
Zusammengefasst sollten die folgenden beiden Regeln eingehalten werden:
Wenn wir uns daran halten, können wir uns langfristig eine Bibliothek an Schnittstellen aufbauen, deren Einsatzmöglichkeiten nicht auf einen einzelnen Prozess beschränkt sind.
Im Prozess ist ein Ausschnitt eines vereinfachten Bestellprozesses zu sehen. Nachdem wir eine Bestellung erhalten haben, muss diese zunächst kontrolliert werden. Nach der Kontrolle wird die Bestellbestätigung und die Rechnung versendet. Bei genauere Betrachtung handelt es sich in beiden Fällen um dasselbe: den Versand einer E-Mail.
Die Funktionalität “E-Mail versenden” kann auf das Bereitstellen der Daten
reduziert werden. Dadurch erhalten wir eine Funktion, die nicht nur im gleichen Prozessmodell, sondern auch prozessübergreifend wiederverwendet werden kann.
Doch wie können wir diese Schnittstellen bei der Modellierung verwenden, ohne das Mapping der Daten manuell vornehmen zu müssen? Im nächsten Blogpost lernen wir das Feature “Element-Templates” der Process Engine Camunda kennen und schauen uns an, wie wir durch Low-Code einfache Wiederverwendung ermöglichen und eine Bibliothek aufbauen können, die von unterschiedlichen Prozessen eingesetzt werden kann.
Rechtliches