Unternehmen, die Geschäftsprozesse auf Basis von BPM-Plattformen umsetzen haben bereits einen Schritt hin zu agiler Business Software und einem besseren Business-IT-Alignment gemacht. Doch wie sieht es mit Wiederverwendung wiederkehrender Prozessteile und der Erweiterung bzw. Anpassung laufender Prozesse aus? Dieser Artikel zeigt, wie auf Basis der Business Operations Platform (BOP) von Cordys durch dynamische Prozesssteuerung verschiedene Ausprägungen eines generischen Prozesses umgesetzt und erweitert werden können.

Anwendungsbeispiel Freigabeprozesse im Konzern

Betrachten wir dazu beispielhaft folgenden Anwendungsfall: Für die Freigabe von Anträgen soll ein Prozess implementiert werden. Basierend auf verschiedenen Parametern des Antrags (z.B. das Volumen einer Bestellmenge) wird für die Freigabe des Antrages ein 2-Augen oder ein 4-Augen-Prinzip benötigt. Da die Teilprozesse für 2- bzw. 4-Augen-Prinzip recht komplex sein können, bietet es sich an, diese in Subprozesse auszulagern. Üblicherweise würde man eine solche Anforderung mit einer einfachen Verzweigung im Prozess umsetzen:

Anwendungsfall

Was aber, wenn die Entscheidungsgrundlage für die Verzweigung änderbar bleiben oder für neue Freigabeprozesse erweitert werden soll? logicline implementiert für einen Technologiekonzern verschiedenartige solcher Freigabeprozesse auf der Cordys-Plattform. Die Prozesse sind im Kern gleich: Jeder Prozess läuft über mehrere Freigabestufen, die wiederum jeweils aus einem 2-Augen oder einem 4-Augen-Prinzip bestehen können. Die Teilprozesse für 2- bzw. 4-Augen-Prinzip bestehen aus bis zu 20 Aktivitäten und sind daher in Subprozesse ausgelagert. Sie werden in den einzelnen Freigabestufen im Hauptprozess wiederverwendet.

Freigabestufen

Auf diesem Grundgerüst sollen nun nach und nach weitere spezifische Freigabeprozesstypen umgesetzt werden. Ob eine Freigabestufe benötigt wird und wenn ja, in welcher Ausprägung, hängt für jeden dieser Prozesstypen an anderen Bedingungen. Da der erste Prozesstyp bereits produktiv ist, kann für die weiteren nicht einfach die komplette Prozessdefinition (insbesondere die Verzweigungsbedingung) geändert werden. Es wird also eine Möglichkeit benötigt, konfigurativ den Verlauf eines Prozesses zu beeinflussen. Cordys BOP bietet dazu das Prinzip der Decision Tables in Verbindung mit dem sogenannten Late Binding.

Ein Regelwerk für dynamische Prozesse

Was bedeutet das im Einzelnen? Die Entscheidungsregeln für den Ablauf der einzelnen Prozesstypen werden in Entscheidungstabellen definiert. Diese Regeln werden zur Laufzeit des Prozesses von der Prozess Engine ausgewertet und dynamisch der Verlauf des Prozesse gesteuert. Im Beispiel heißt das, dass erst während der Laufzeit anhand der Eingabewerte zwischen 2- und 4-Augen-Prinzip entschieden und dann der entsprechende Subprozess gestartet wird (Late Binding).

Die Decision Table definiert in einer simplen Tabellenstruktur die Regeln. Das Regelwerk kann problemlos verändert oder um neue Regeln (z.B. für neue Prozesstypen) erweitert werden. In einfachen Fällen können die Regeln sogar vom affinen Fachbereich selbst angepasst werden. Bei komplexeren Regeln sollte hier aber unbedingt die Entwicklungsabteilung einbezogen werden. Werden diese Regeln als eigenständiges Deployment Paket ausgeliefert, kann das Regelwerk unabhängig vom Rest der Prozessimplementierung zur Laufzeit ausgetauscht werden.

Decision Table

Aufpassen sollte man allerdings bei der Definition der Inputs und Outputs für die Decision Table, die durch ein XML Schema definiert werden. Während das Hinzufügen weiterer Parameter problemlos möglich ist, sollte von Änderung oder Entfernen bestehender Parameter im Schema abgesehen werden. Das führt in der Regel dazu, dass die komplette Decision Table neu aufgebaut werden muss.

Vorteil Erweiterbarkeit

Entscheidender Vorteil ist hier die Erweiterbarkeit. Sollte in Zukunft neben den bereits bestehenden 2- und 4-Augen Prozessen beispielsweise ein neuer 6-Augen-Prozess zum Einsatz kommen, kann dieser über das Regelwerk auf einfach Art und Weise eingebunden werden. Einzige Voraussetzung dafür ist, dass alle diese Subprozesse die gleiche Schnittstelle verwenden. Nur so ist es möglich, auch Inputdaten in die Subprozesse zu übergeben und das Ergebnis (freigegeben oder nicht freigegeben) zurück zu übermitteln. Bei Cordys wird dazu eine einheitliche Webservice Schnittstelle definiert, die bei jedem der relevanten Subprozesse als Contract verwendet wird und damit deren Input und Output Messages vorgibt. So können dann vom Hauptprozess aus generisch die Inputs und Outputs gemappt werden.

Subprozesse

Bedenken sollte man bei dieser Lösung, dass die Schnittstelle stabil bleiben sollte. Änderungen an der Webservice Schnittstelle haben Auswirkungen auf alle angebundenen Subprozesse (Mappings von Inputs und Outputs). In der verwendeten Version BOP 4.1 ist es zudem vorgekommen, dass sich durch solche Anpassungen auch Änderungen in den generierten Namespace Prefixes ergeben. Ein unschöner Nebeneffekt, da dadurch schlicht und ergreifend das Mapping im Hauptprozess fehlschlägt. Das wiederum bemerkt man in der Regel erst, wenn der nächste Prozessdurchlauf getestet wird und plötzlich keine Inputdaten mehr im Subprozess ankommen.

Zusammengefasst: flexible Lösung für dynamische Prozesse

Das Prinzip von Decision Tables und Late Binding schafft die Möglichkeit, anhand von Regeln dynamisch Prozesse zu steuern. Diese Regeln sind einfach zu definieren und können getrennt vom Rest der Implementierung verwaltet und weiterentwickelt werden. Außerdem sind sie zur Laufzeit der Prozesse austauschbar. Damit erhält man eine flexible Lösung, die durch einfache Konfiguration für beliebige neue Prozessausprägungen angepasst und erweitert werden kann. So können beliebig viele verschiedene Ausprägungen eines generischen Prozesses mit wenig Aufwand implementiert und ausgerollt werden.

Weitere Informationen zu Cordys BOP finden Sie auf unserer Website unter Kompetenzen | Cordys, zu BPM und BPM-Plattformen im allgemeinen unter Kompetenzen | BPM.