Hi there!
I’ve covered the system collaborations and you can read my past articles from here.
I feel more people are using and trying RPA tools *1 these days. According to Google Trends, the following three tools are used the most in Japan.
Among them, UiPath is used more than any other tool because it is free to use, including the servers.
On the other hand, I often hear that some customers have tried RPA tools because they are popular, but they didn’t work.
There are various ways to implement them, but I can suggest one way which is to collaborate with BPM *2. Organize the business flow with BPM, consider which parts of the business are more effective to automate, and then apply the RPA tool to the most effective areas. Besides, since the RPA tool can be launched automatically from BPM in the middle of business flow, the combination of BPM and RPA can be used even more easily and effectively.
Please visit the following page for details.
The 4 steps for Successful RPA Introduction
Collaboration between BPM Workflow and RPA Tool
So, this time I verified whether the robot made in UiPath can be launched via API *3 from a workflow created in Questetra, the cloud-based BPM workflow.
*2. BPM: Business Process Management, an activity to improve workflow cycles and deliver results
*3. API: Application Programming Interface, a connection to use the program – I use REST API (Communication by http request)
2: Preparation of UiPath and Questetra
2 -1: UiPath
2 -2: Questetra
2 -3: Changing the behavior by specifying arguments
2 -4: Verifying Operation
3: Summary
1.The Overview of Collaboration between UiPath and Questetra
I will roughly explain the following picture.
UiPath Studio (hereafter, Studio) is a design tool, and UiPath Orchestrator (Orchestrator) is a server. Although I didn’t show it in the diagram, Studio connects to Orchestrator via a tool called UiPath Agent (Agent).
*I will let Questetra collaborate with UiPath via the REST API – and you can do that in other ways or you can let UiPath collaborate with Questetra.
2: Preparation of UiPath and Questetra
I will describe specific settings in this chapter. You can skim through it if you are not interested in the technical aspects.
2 -1: UiPath
I started to use UiPath in earnest for this verification, but I had a hard time understanding the concept, terminology, and its relationship. The following picture accurately represents what I understood when using Orchestrator (the relationship between Machines/Robots/A group of Robots (Environment)/Packages/Processes/Jobs).
The Orchestrator ER diagram in the UiPath documents also covered that.
*Also, some of the UiPath documents don’t offer a Japanese version and the English forums are more informative, so I suggest you use the English language setting.
I have summarized what I’ve done.
- Design automated processes in Studio (for verification, a MessageBox just pops up)
- Connect to Demo Orchestrator (connect to https://demo.uipath.com) and enroll its tenant (it is necessary to set the password for authentication of API execution)
- Connect PCs for executing and designing Robots to Orchestrator via Agent
- Register executing PCs as Machines in Orchestrator (be careful which PC you use because it is necessary to enter a Windows password)
- Publish the Studio design and upload as a „Package“ to Orchestrator via Agent
- Create a group of Robots (Environment) and Robots linked to
Machines and executed in Orchestrator - Create a group of Robots (Environment) and Packages linked by Processes in Orchestrator
The Job implements this Process and it can be done from Orchestrator via an API.
*A Processes (Releases) Key is necessary when implementing a Process with an API, and it seems you can obtain it from the API only after creating the Process. We’ll get more details on that later.
・INTRODUCTION TO THE ORCHESTRATOR API
*You have to pay attention to the changed UI due to version upgrading and I acquired the Machine Key from the Machine information of the Orchestrator
As for the design, various documents appear if you search so please refer to those. Anyway, the following is a rough summary.
- Search for the necessary parts, add them to the flow and set the properties. Repeating that to create the flow
- Import necessary parts if they are missing
2 -2: Questetra
The API is configured to send http requests (Throwing Message Intermediate Event (HTTP)), but authentication is a bit special.
Therefore, the process is as follows.
- Send an http request for authentication and receive a token from the response
- Send an http request for implementing the API with that token
https://platform.uipath.com/api/account/authenticate
・Send JSON sample when authenticating
{
"tenancyName" : "XXX_TenantName_XXX",
"usernameOrEmailAddress" : "XXX_email_XXX",
"password" : "XXX_password_XXX"
}
・Script sample which acquires the token from authentication response
var jsonObj = JSON.parse(engine.findDataByNumber("10"));
var token = jsonObj.result + "";
engine.setDataByNumber("11", token);
https://platform.uipath.com/odata/Releases?$filter=%20Name%20eq%20'XXX_ProcessName_XXX'
https://platform.uipath.com/odata/Jobs/UiPath.Server.Configuration.OData.StartJobs
・JSON sample sending when implementing
{
"startInfo": {
"ReleaseKey": "XXX_Key_XXX",
"Strategy": "All",
"RobotIds": [],
"NoOfRobots": 0
}
}
For actual business use, I suppose you add the part for sending an http request after you get the approval.
(e.g. The RPA tool registers the master after the request to add masters is approved.)
M225: Auto Sending of HTTP Requests with Business Data Inserted
M230: Auto Executing Complicated Data Processing (ECMAScript)
Also, for the setup to send an http request with JSON, you can refer to „3-2. The case of not using Add-on“ chapter in the following article of Posting to Microsoft Teams from Workflow
2 -3: Changing the behavior by specifying arguments
When launching the REST API, I think you may want to change the behavior depending on the arguments.
For that, the following measures are necessary.
- Prepare input arguments (arguments/IN) in Studio (Don’t forget to publish or rework processes in Orchestrator after republishing)
- Specify arguments to send when implementing in JSON (The arguments should be strings of JSON)
{
"startInfo": {
"ReleaseKey": "XXX_Key_XXX",
"Strategy": "All",
"RobotIds": [],
"NoOfRobots": 0,
"InputArguments": "{\"XXX_ArgumentName_XXX\":\"XXX_value_XXX\"}"
}
}
2 -4: Verifying Operation
It didn’t take long to process if the designing PC and executing PC were the same. If they were different, Robots needed to be downloaded, and the first implementation took a bit of time.
Moreover, when the PC was in sleep mode the process could not be executed, so it was necessary to change the settings not to go into sleep mode.
With those in mind, the process is executed automatically as expected.
3: Summary
If you sign up for the free Starter Plan I’m planning to do a test-run to put the data into an Excel file. I expect there will be some operational issues so I intend to share these in another article.
Also while verifying UiPath this time, I felt that the design and deployment of the process flow were configured similar to Questetra. Therefore, I think they can be a good combination because their mechanisms are close.
*However, there is a „Process“ in both tools – UiPath’s one refers to the configuration for execution and Questetra’s one refers to the execution, so be careful not to confuse them
Incidentally, other RPA tools can be operated similarly. I’ve already verified the API connection with BasicRobo! (Formerly BizRobo!).
Collaboration between RPA Tool and BPM System
Also, Other than API, I’ve already verified some connections with other RPA tools.
You can feel free to contact us via Contact Form if you have any questions or consultations.
Starter Plan
You can create a free Questetra trial account by filling out the webform below. All functions are available including those mentioned above. If you use the UiPath Community Edition you can try it for free, so please try them together.