Connecting BPMS with RPA – using Bonita and UIPath

Update 21.02.2004: Due to some changes in UIPath, this example doesn’t run anymore on the current version. I have re-created the example using another RPA system (Microsoft Power Automate Desktop). See this post.

Robotic Process Automation (RPA) is very popular for automating routine tasks. However, RPA is not very good at controlling entire end-to-end-processes. This is the realm of Workflow or Business Process Management Systems. Therefore, it can be a good idea to connect BPMS with RPA. The BPMS manages the overall process flow. The different tasks in the process can either be user tasks or system calls via interfaces – or tasks that are performed by RPA bots.

The latest version of the BPMS Bonita (community edition) contains connectors to the RPA system UIPath. Vice versa, UIPath also provides connectors to Bonita. I have tested this integration using the following two examples:

  1. In the first example, order data are provided as Excel sheets. They are read by an RPA bot. Then the bot starts a Bonita process and hands over the order data.
  2. In the second example, a Bonita process calls an RPA bot in order to retrieve a currency exchange rate from a website.


BPMN: What to do without event-based gateways

Order from warehouse - event-based gateway_smA process with an event-based gateway (click to enlarge)

If you want to model the reactions to different events in a BPMN process, the event-based gateway is very useful. At a normal exclusive splitting gateway, a sequence flow is selected based on data. It is therefore called data-based gateway. For example, a procurement request may be routed to a manager for approval if the total amount exceeds a certain limit. At an event-based gateway, on the other hand, a sequence flow is selected based on the occurence of an event.


How to Model Parallel Checks in BPMN

One of the modeling patterns I describe in the new edition of the BPMN book, is „Parallel Checks“. When different persons need to check applications, requests, etc. according to different criteria, these checks can be carried out in parallel. There are two different ways to model this. The simple solution only requires basic BPMN elements, while the more sophisticated solution requires a sub-process and a terminate end event. We start with the simple solution.