To offer a well rounded approach to cutting edge technologies, Bizagi features its RPA integration capabilities with UIPath.
UIPath is one of the leading vendors of RPA of the market. They count with a robot development environment called UIPath Studio, and an online community where users from all over the world can upload their work and explore ideas of other members of the UIPath community.
An RPA robot can be programmed to perform pretty much any task a person is able to do in a GUI, especially those that require consulting multiple information systems, or repetitive operations. With the UIPath integration, you can trigger the execution of a bot at a specific step of a process and input the parameters it needs for a successful execution. After that, you just have to wait for the bot to finish executing its task, which probably would take much less time than a person doing it manually. For additional information on RPA and its possibilities, refer to Bots.
In this article you can find a step by step guide on how to configure the integration between a Bizagi project and a UIPath bot, any important notes regarding this topic and a simple example of such integrations.
When integrating an RPA bot with a Bizagi Project, Bizagi is only responsible for triggering the execution of the sequence of actions that the bot is programmed to do. Any error during the execution of the bot, any miscalculation or problem with the logical sequence of steps that the bot takes, is a consequence of what the developer of the bot programmed it to do.
Configuring a connection with your UIPath Orchestrator
To configure an integration of a bot with a Bizagi process, you first need to have your bot developed and published into the UIPath Orchestrator. Make sure to create the corresponding Environment, Machine, Robot, and Process in order to be able to trigger the execution of the bot from Bizagi.
Once you have taken care of the UIPath setup for the robot, head to Bizagi Studio and go to the Expert view.
Click the Bots option and locate the UIPath branch which is under RPA bots.
Click UIPath and then click on Add Connection. This option appears after clicking UIPath.
At this point, the UIPath RPA configuration wizard appears. The following list, explains all the parameters that need to be configured in order to configure a successful connection to your orchestrator, which hosts the process you want to trigger from Bizagi.
•Tenant Name: Name of the orchestrator instance you provided at the time of its creation.
•Username / Email: Associated Username or Email of an admin user of the orchestrator.
•Password: Corresponding password to the previous field.
•Orchestrator URL: URL of the UIPath orchestrator. Usually the value that must be inputted in this field is https://platform.uipath.com/.
Once you are finished filling up the form fields, click Test connection and check that the resulting connection status on the text field below, shows a message indicating a successful connection.
If a message indicating otherwise is shown, review the inputted information and try again. Once your connection is successful, click Save.
Under the UIPath branch, the new connection appears. Its name is the same as the Tenant Name of your Orchestrator, and you can see your connection details in the main panel of the screen.
Adding a UIPath Process to your configured connection
After having the connection successfully configured, you need to add to that connection the UIPath process that you want Bizagi to trigger at some point. You can do this by clicking the connection and then clicking the Add UIPath process button.
Upon clicking such option, the UIPath Process Configuration wizard appears. Here you can see all the available processes from your Orchestrator. Depending on the way your bot is configured different options may appear and this may also vary depending on your UIPath Studio Version. If your bot was programmed on UIPath Studio v2018.1 or lower, the only way it can receive parameters is via a Queue. If your bot was programmed on an equal or higher version of UIPath Studio, it can receive parameters directly. Alternatively, you can have a bot configured to not receive parameters, in any version.
Configuring a Process with no input parameters
In the first step of the Wizard provide a Display Name, and select the No option in the prompted question, to indicate that your Bot has no input parameters configured, nor it will look for them in a queue.
Once you are done in the first step, click Next. You will skip through the third and last step of the Wizard which is a summary. Review the presented information, and if everything is correct, click Finish to end your bot's process configuration.
Configuring a process that receives input parameters
If you have a process that directly receives parameters for its execution (not from a queue) the No option is selected for you by default and you are not able to change it.
Click Next to go to the second step of the Wizard, in which you configure the input parameters. Any input and output parameters configured on your Bot will appear in this step. Each parameter has its name and a mock value with its corresponding configured Data type.
Review, and make any necessary changes to this information, and then click Next, to be directed into the third and last step of the Wizard, which is the summary.
Review the information and return to the previous steps in case you want to make any changes. Once you are done, click Finish.
Configuring a process that receives parameters or writes outputs to a queue
If your bot is configured in such a way that it reads and writes from a queue, select the corresponding option on the first step of the Wizard.
Click Next to go to the next step of the Wizard, where you can configure your input and output parameters from a queue.
From your Orchestrator's Queues, select the one that you are going to use for this process. Then, configure the input and output parameters in the designated text fields for this. Provide the structure of the information you are going to read and write in JSON syntax (refer to Parameter Configuration for further details). In case you are not going to write results, leave the Enable output from queue option unticked.
Once you are done configuring your parameters' structure, click Next to go to the third and last step of the Wizard. In that screen you are presented with a summary of what you have configured. Review the information and return to previous steps if you need to make any changes. Once you are done, click Finish.
At this point, independently from which alternative of parameters you have used, you now count with a configured connection to your UIPath Orchestrator and a configured process to be used from Bizagi. Take into account that you can add as many processes as you need to a connection.
Executing a configured UIPath bot from a Process
Up until this point you have configured a connection to your UIPath Orchestrator and made some of its processes available to be used or triggered from a Bizagi Process. Nevertheless, you have not actually configured the launch of a process execution yet. There are two different ways of triggering the execution of an RPA bot from Bizagi: From an On Exit Activity action and From a Bot Task.
Triggering the execution of an RPA Bot from an On Exit Activity Action
Use this alternative way of triggering the execution of a Bot whenever you want to launch the process just before a task is actually completed. This is useful to capture values on forms and use them as parameters for the execution.
By configuring a bot to be executed as an Activity Action, its execution is synchronous. This means that the task will not be completed until the bot successfully completes its execution.
Be careful when doing this kind of configuration, since any problem with the bot may cause your process to get stuck. Keep in mind that this option is not available for Service Tasks since they are asynchronous.
To use this alternative, go to the fourth step of the Process Wizard and select Activity Actions, click the task on which you want to add the On Exit Activity and then click on the plus icon to add a new Activity Action.
Triggering the execution of an RPA Bot from a Bot Task
Use this alternative way of triggering the execution of a Bot when you want to denote that the process executed by the Bot is a task in itself. With this alternative you can also send parameters to its execution from a queue or your Data Model.
By configuring a bot to be executed as an Activity Action, its execution is asynchronous. This means that other active tokens continue their execution, while the bot is being executed.
Keep in mind that Bizagi is only responsible for triggering the execution of the Bot and sending an receiving parameters, the execution of the bot is entirely dependent of UIPath and whatever was configured in UIPath Studio by the developer.
Configure the task that is going to be executed by a bot on your model, by changing its type to a Bot Task.
A bot task is identified by the icon.
Then go to the Sixth step of the Wizard Define Integration Interfaces (Optional), to configure the execution.
Click the task you just converted to a Bot Task, to launch the RPA Execution Configuration Wizard.
Configuring the execution of a bot
Independently of which alternative you used to trigger the bot, from an Activity Action or a Task, the RPA Execution Configuration Wizard appears.
In this Wizard you can configure the triggering of an RPA bot when your process reaches this point on its flow. First, select the corresponding RPA vendor on the left panel, in this case click UIPath.
After selecting your vendor, on the main panel you can see the list of available Bot configurations. This list corresponds to what you have previously configured on the Expert View. Select the Bot you want to be executed at this point of your process.
At the bottom of this screen there are two fields that you need to configure:
•Check status resuming time: In this field you need to configure the amount of times Bizagi will be checking the status of the execution of the bot to know when it is finished or have failed.
•Check status interval (sec): In this field you need to configure the amount of time in seconds between each of the status checks that are going to be performed, as configured in the previous field.
In this case, for example, we have configured Bizagi to check for the status of execution of the bot five times, every 40 seconds.
Once you are done providing this information, you can head to the next step of the Wizard. If your Bot receives parameters, you will be presented with a mapping interface for you to select which attribute of your data model is going to be inputted as a parameter to the bot; and then, you will be prompted to map to which attribute of your data model the resulting information of the bot is going to be stored in.
If you configured the process in the Expert View indicating that it does not receive any parameters, this steps are automatically skipped.
Otherwise map the inputs to your data model in the next window an click Next.
Do the same for the outputs in the next window.
In this case, the bot receives the name of the CV it will read in the input nameFile as a parameter, reads the CV looking for information about the candidate, and writes its result in the CandidateName, Profession and Yearsofexperiens attributes of the data model.
This configuration works the same way for the case of reading and writing to queues, the difference is that the bot internally will look in the queue instead of in the data model to obtain and write parameters.
Once you are done mapping the input and output parameters, click Finish.
At this point you have now configured a bot to be executed each time that the process flow gets to that specific point.
As it was mentioned and showed in the previous guide, when dealing with input and output parameters when using RPA Bots, they are configured by using JSON objects. In this section you can find the detailed explanation on how to configure input and output parameters, and managing the different data types.
The following is the list of all the available data types that can be used when configuring parameters:
•String: It is denoted by "AAAAAA".
•Boolean: It is denoted by true.
•Double: It is denoted by 1.2.
•Integer: it is denoted by 12345.
•DateTime: It is denoted by "00/00/0000".
Bizagi detects this types but you must configure them manually in the second step of the Wizard. To do this you must replace the auto-detected value for the structure of your outputs. For example to configure this bot:
You must replace the values of the CasesToCrate field with the Array object definition:
•Object: It is detected as "Object - Edit Value". This value must be modified to match whatever is needed (the properties must match those defined in UIPath, they are case sensitive), for example:
"Propery One": "Value",
"Property Two": "Value"
•Array Object: It is detected as "Array Object - Edit Value". This value must be modified to match whatever is needed (the properties must match those defined in UIPath, they are case sensitive), for example:
"Array Element Property 1": "Value",
"Array Element Property 2": "Value"
•DataTable: It is detected as "DataTable - Edit Value". This value must be modified to match whatever is needed (the properties must match those defined in UIPath, they are case sensitive), for example:
"DataTable Property 1": "Value",
"DataTable Property 2": "Value"
Objects, Arrays and Data Tables are structures that internally store parameters of the first described types. This means that the value of each defined property of this objects must be defined as one of the "static" types or a nested dynamic type. If you don't modify the value of this parameters, Bizagi Studio will interpret it as a String.