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.

Die Beispiele werden in den folgenden Videos vorgestellt. Weiter unten können die Projektdateien heruntergeladen werden.

Sollte man vergleichbare Beispiele in der Praxis auf dieselbe Weise lösen? An und für sich nicht. Ein neuer Auftrag sollte möglichst direkt im BPMS erfasst werden, ggf. über eine mobile App mit einer richtigen Schnittstelle. Damit ist es beispielsweise viel einfacher, fehlerhafte Dateneingaben auszuschließen. Bei einem Excel-Sheet kann man sich nicht immer darauf verlassen, dass die Daten immer in der erwarteten Form eingetragen wurden. Daher müsste auch das obige Beispiel noch um umfangreiche Fehler- und Ausnahmebehandlungen ergänzt werden.

Wenn nun aber aus irgendwelchen historischen Gründen Aufträge in Form von Excel-Dateien geliefert werden, dann kann der RPA-Einsatz als kurzfristige Lösung gerechtfertigt sein – die jedoch mittelfristig abgelöst werden sollte.

Ähnlich ist es mit dem Auslesen von Währungskursen aus einer Website. So können Verzögerungen beim Seitenaufbau oder Änderungen im Seitenlayout dazu führen, dass sinnlose oder falsche Ergebnisse zurück geliefert werden. Hier wäre ein Aufruf über eine REST-Schnittstelle der bessere Weg. Interessanterweise bietet die verwendete Website auch eine REST-Schnittstelle an, deren Nutzung aber kostenpflichtig ist. Wenn es eine solche Integrationsmöglichkeit aber nicht gibt, z. B. bei einer Altanwendung, kann auch hier der RPA-Einsatz zumindest als vorübergehende Lösung sinnvoll sein.

Damit soll aber nicht gesagt sein, dass RPA prinzipiell nur eine Übergangslösung ist. Es gibt viele Aufgaben, die außerhalb eines BPMS liegen und mit Hilfe von RPA durchgeführt werden können. Typische Beispiele sind die Analyse von Rechnungsdokumenten oder die Auswertung von Fotos zur Schadensbeurteilung in Autoversicherungen. Also all das, was etwas mehr Intelligenz benötigt als nur Daten von einer Anwendung in eine andere zu übertragen.

Downloads und Anleitung

Um die Beispiele selbst nachvollziehen zu können, sind grundlegende Kenntnisse über Bonita und UI-Path erforderlich, wie sie beispielsweise in den folgenden Tutorials vermittelt werden:

Im ersten Beispiel wird speziell die Umwandlung von Excel-Daten in JSON genutzt:

Die Veröffentlichung eines Bots in UIPath Orchestrator wird für das zweite Beispiel benötigt:

Hier sind die fertigen Projektdateien zum Download:

Die zip-Dateien enthalten jeweils eine .bos-Datei und ein Verzeichnis. Die .bos-Datei wird in Bonita in ein neues Projekt importiert. Wichtig: Die Beispiele funktionieren erst ab Version 2021.2beta!

Das Verzeichnis enthält das UIPath-Projekt, das im UIPath-Studio geöffnet werden kann. Die Veröffentlichung im UIPath Orchestrator wird im oben verlinkten Tutorial beschrieben. Das Eintragen der Verbindungsdaten in den UIPath Connector wird in dem zweiten Video erläutert. Damit der Aufruf der Website im zweiten Beispiel funktioniert, muss ggf. im Chrome-Browser noch die Extension „UIPath Web Automation“ installiert werden.