BPMN in Action: Communicating With an External System Using RPA

In this post, I describe another example of the interaction between executable processes and Robotic Process Automation (RPA). The last post was about an RPA bot starting a process and transferring data from an Excel file to it. In today’s example, a bot is to carry out a task within a process and transfer data to an external system.

The external system used here is „Odoo“, a comprehensive business software. As there is no suitable connector in the Bonita BPM system for calling this software, the bot logs into the system like a human and enters the data via the user interface.

As RPA system I use Microsoft Power Automate Desktop again. In a similar example developed some time ago, I had used the RPA system UI-Path. Since UI-Path provides a REST interface, I just called the bot via this interface. Unfortunately, it turned out that the free version of Power Automate Desktop does not have a suitable interface.

Therefore the bot accesses the BPM system just like it accesses the external system: via the user interface. The bot has its own user in Bonita. After logging in, it receives its tasks in a task list, just like a human user. It performs the tasks one after the other, reads the required data from the UI form, switches to the user interface of the external system and inserts the data.

The scenario is described in the following video. Below you find the project files, which you can use to try out the example yourself in the free versions of Bonita and Microsoft Power Automate Desktop.

Downloads and Instructions

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

Here are the finished project files to download:

The zip file contains the Bonita project file (extension .bos) and text files with the definitions of the „flows“ and „subflows“ for Power Automate.

Import the .bos file into a new project in Bonita (version 2023.2 or later). Deploy the organization, the business data model, and the process.

The following must be done in Power Automate Desktop:

  1. Create a new flow with the name „Update Contact Data“.
    This opens the editor. Now copy the text from „SaveContactInCRM.txt“ and paste it into the editor. The flow is displayed in block representation.
  2. In the „Subflow“ tab, create the following subflows:
    – OpenOdooContacts
    – OpenBonitaTasklist
    – TransferContactValues
    The names must be written exactly as specified. There should not be any errors anymore in Power Automate. At the top, there is now a tab for each subflow.
  3. Switch to the „OpenOdooContacts“ tab.
    Copy the entire text from the „OpenOdooContacts.txt“ file and paste it into PowerAutomate.
  4. Copy the contents of the other files into the corresponding subflows in the same way.
  5. Save.

Now run the process in Bonita (user „admin“, password „bpm“) and enter the data of the new contact. You can also start several process instances.

Close all web browsers. Otherwise, Power Automate sometimes gets confused about the different browser instances.

In Power Automate, switch to the „Main“ tab and click „Run“. The bot transfers the contacts into Odoo.