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.

These examples are presented in the following videos. Further down you can download the project files.

Should comparable cases in the real world be handled in the same way? Not really. A new order should be entered directly into the BPMS or maybe into a mobile app with a defined interface. This makes it easier to prevent erroneous data entries. With an Excel sheet you cannot be sure that the data are always entered in the expected way. Therefore, it would be necessary to add comprehensive error and exception handling actions in the above example.

However, if for some historical reasons order data are still delivered as Excel files, then the use of RPA as a short-term solution may be justified – but it should be replaced in the medium run.

Retrieving exchange rates from a website is something similar. When the website is displayed with a delay or the layout has changed, meaningless or wrong results may be received. A call of a REST interface would be a much betters solution. In fact, the website used in the example also provides a REST interface – but you need to pay for using it.

If there isn’t any proper interface, e. g. to a legacy application, RPA may be an acceptable solution for a limited time.

That doesn’t mean that RPA as such is only a short-term technology. There are many tasks outside the realm of a BPMS which can be handled by RPA bots. Typical examples are the analysis of invoice documents or the evaluation of photographs in order to assess damages for a car insurance company. Such tasks require a bit more intelligence than just copying data from one software application to another one.

Downloads and Instructions

If you want to try these examples for yourself, you need to have basic knowledge about Bonita and UIPath. Here are some tutorials:

In the first example, the conversion of Excel-Data into JSON is used:

The second example requires that a bot is being published in UIPath Orchestrator:

Here are the finished project files for download:

Each zip file contains a .bos file and a folder. The .bos file must be imported into Bonita as a new project. Important: The examples do not work with a Bonita version below 2021.2beta!

The folder contains the UIPath project which can be opened in UIPath studio. The publication to the UIPath Orchestrator is described in the above linked tutorial. The configuration of Bonita’s UIPath connector with the connection data and credentials is described in the second video.

In the second example, it may be necessary to install the Chrome browser extension „UIPath Web Automation“ to make sure that the bot can open the website with this browser.