Joget DX 8 Stable Released
The stable release for Joget DX 8 is now available, with a focus on UX and Governance.
Warning |
---|
Note: This tutorial is for the older UiPath Studio 19.5. Please refer to the latest Integration with UiPath Robotic Process Automation for the latest UiPath Studio 20.10, which provides a much simplified sign in and first run experience compared to previous releases. |
Table of Contents
UiPath is one of the leading Robotic Process Automation (RPA) vendors. UiPath consists of 3 main components:
...
UiPath Studio: UI tool to visually design the process to automate
UiPath Orchestrator: Web application that manages the creation, monitoring, and deployment of all robots and processes
UiPath Robot: Runs processes that were built in UiPath Studio. Execution agent that is installed and executed in the actual machine.
Here are some of the basic concepts and terms in UiPath that you should get familiar with for the tutorial later:
...
Library: A process library describes a system of activities that are reusable for sharing
Schedule: Enables jobs to be executed in a preplanned manner
Asset: Usually represent shared variables or credentials that can be used in different projects.
Queue: A place to store multiple types of data, such as invoice information or customer details.
...
UiPath provides the Orchestrator API for integration.
The most commonly used function is Starting a Job, which should satisfy a majority of use cases. We will use this function in the following integration tutorial.
Let’s sign up for an account at https://www.uipath.com/platform-trial. There is a Community plan to get started for free, so we’ll Choose Community to register.
...
Select the service name to open the UiPath Orchestrator web application.
Download the UiPath Studio installer (UiPathStudioSetup.exe) from the Resource Center, and install it on the target computer. More information on UiPath Studio is available at the UiPath Studio Guide.
...
After installing UiPathStudioSetup.exe, start UiPath Studio from the Windows Start menu and activate it. You can start free by activating the Community Edition.
In the Windows Start menu, search for UiPath Robot and start it
...
Click on the Gear icon to open the Orchestrator Settings window, and copy the Machine Name.
Back in the UiPath Orchestrator, create a new Machine under the Machines menu.
...
View the selected Machine and copy the Machine Key.
In the UiPath Robot, click on the Gear icon to open the Orchestrator Settings window.
...
Info |
---|
Once connected, you should see “Status: Robot unavailable” at the bottom of the window. Hover over that message, and you should see the reason “Robot is not available.” This message means that the machine connection is valid, so now it’s time to create a robot. If you see a different reason then there might be an error in your configuration so you will want to double check your settings. |
In the UiPath Orchestrator under the Robots menu, click on the Plus icon on the top right.
...
Set a “Name”, and fill in the actual Windows login for the target machine (where the UiPath Robot is installed) under Domain\Username and Password.
Next, we’ll need to add the created Robot to the Environment. Select the Environments tab at the top of the Robots menu and select the Manage option.
...
At this point, the robot should be successfully connected to the machine. Check the UiPath Robot Orchestrator Settings and the status should show “Connected, licensed”
Now that the robot is deployed, it’s time to start a job to test it.
...
The robot has successfully started the job. You can monitor the robots and jobs in the Monitoring menu in the UiPath Orchestrator.
In June 2019, UiPath introduced a new mechanism for consuming its Cloud APIs. There are a number of steps required to retrieve some required information for integration:
In a web browser, visit https://repl.it/languages/nodejs and run the following code:
...
Code Block |
---|
Generating challenge and Verifier Code challenge: RzYlHiiGzPGgOLaRQJYftZ1mmc3sCbeicZVRftTmC-A Code verifier: YVMnLczXQgJ9dwzV7MlMWEjGyAia4nXvTZzU4UVrAPE |
Replace the code challenge into the URL below, and visit the updated URL in a browser.
...
Copy the authorization_code in the URL.
Using any API testing tool (e.g. Postman), submit a POST request to
...
Code Block |
---|
{ "access_token": "eyJ0eX...", "refresh_token": "CBZcOD6vrP2FQ9qa8fuqDdfoEwnVPuR2Kpz-hitbTAIzG", "id_token": "eyJ0eX...", "scope": "openid profile email offline_access", "expires_in": 86400, "token_type": "Bearer" } |
Using any API testing tool, submit a POST request to
...
Code Block |
---|
{ "access_token": "eyJ0eX...", "id_token": "eyJ0eX...", "scope": "openid profile email offline_access", "expires_in": 86400, "token_type": "Bearer" } |
Using any API testing tool, submit a POSTGET request to
https://platform.uipath.com/cloudrpa/api/getAccountsForUser with a request header
...
Code Block |
---|
{ "userEmail": "demo@domain.com", "accounts": [ { "accountName": "Demo", "accountLogicalName": "Demo" } ] } |
Using any API testing tool, submit a POSTGET request to
https://platform.uipath.com/cloudrpa/api/account/[accountLogicalName]/getAllServiceInstances with a request header
...
Copy the value for serviceInstanceLogicalName from the response:
Code Block |
---|
[ { "serviceInstanceName": "DemoDefault", "serviceInstanceLogicalName": "DemoDefaultzous50676", "serviceType": "ORCHESTRATOR", "serviceUrl": "https://platform-community.azurewebsites.net" } ] |
We will now need to retrieve the Release Key, a unique identifier for a desired process. Using any API testing tool, submit a GET request to
https://platform.uipath.com/odata/Releases with a request headerheaders
Code Block |
---|
Authorization: Bearer [idaccess_token] X-UIPATH-TenantName: [serviceInstanceLogicalName] |
Copy the Copy the value for Key from the response:
...
Code Block |
---|
{ "@odata.context": "https://platform.uipath.com/odata/$metadata#Releases", "@odata.count": 1, "value": [ { "Key": "b27c7363-459c-4520-bae5-660d4a1d3813", "ProcessKey": "Demo_Process", "ProcessVersion": "1.0.21", "IsLatestVersion": false, "IsProcessDeleted": false, "Description": "Demo Process", "Name": "Demo Process", "EnvironmentId": 98069, "EnvironmentName": "Demo Environment", "InputArguments": null, "QueueDefinitionId": null, "QueueDefinitionName": null, "Id": 120897, "Arguments": { "Input": null, "Output": null }, "ProcessSettings": null } ] } |
At this point, make sure you have the following critical information at hand:
...
Code Block |
---|
{ "@odata.context": "https://platform.uipath.com/odata/$metadata#Jobs", "value": [ { "Key": "e811bd29-26fb-4cc3-af91-7fd6308ca643", "StartTime": null, "EndTime": null, "State": "Pending", "Source": "Manual", "SourceType": "Manual", "BatchExecutionKey": "382e7a96-a5b9-4343-b258-26a80cf87f80", "Info": null, "CreationTime": "2019-06-12T08:02:03.2595408Z", "StartingScheduleId": null, "ReleaseName": "Demo Process", "Type": "Unattended", "InputArguments": null, "OutputArguments": null, "HostMachineName": null, "HasMediaRecorded": false, "Id": 10169582 } ] } |
If you already have your own installation of the Joget platform, you can use it and skip this step. Otherwise, you can sign up for Joget Workflow On-Demand, a hosted version of the Joget platform that allows you to quickly get started.
Visit https://cloud.joget.com and click on Sign Up Free to register a new account.
Once you have successfully verified your email, you will be linked to your own running installation of Joget Workflow where you’ll be able to visually build a full app in 30 minutes without coding.
...
UiPath provides the Orchestrator API for integration.
The most commonly used function is Starting a Job, which should satisfy a majority of use cases. We will use this function in the following integration tutorial.
Since the UiPath Orchestrator API is a REST API with data in JSON format, we can use the Joget JSON Tool to invoke the API.
...
refresh_token (Refresh Token)
serviceInstanceLogicalName (Service Instance Logical Name)
Key (Release Key)
First, let’s design a new app by clicking on Design New App in the Joget App Center.
...
Fill in desired values for the App ID and App Name, and click Save.
Click on the Processes menu, then on the Design Process button to launch the Process Builder.
...
Click on the edit pencil icon after hovering over the process name along the top. Enter a suitable process name and create 3 workflow variables to store the response values from UiPath API call:
status,
Id_token
access_token
Click on Deploy.
Once the process has been deployed, close the Process Builder. In the process view page, select the Map Tools to Plugins tab.
...
Click on Configure Plugin for the first tool and select JSON Tool, then key in the following configuration:
JSON URL | |
Call Type | POST |
POST Method | Custom JSON Payload |
Custom JSON Payload | { "grant_type": "refresh_token", "client_id": "5v7PmPJL6FOGu6RB8I1Y4adLBhIwovQN", "refresh_token": "[refresh_token]" } |
Under Store to Workflow Variable, map the variables to store the tokens in the matching workflow variables i.e.
...
access_token | access_token |
id_token | id_token |
Click on Submit to save.
Click on Configure Plugin for the second tool and select JSON Tool, then key in the following configuration:
JSON URL | https://platform.uipath.com/odata/Jobs/UiPath.Server.Configuration.OData.StartJobs |
Call Type | POST |
POST Method | Custom JSON Payload |
Custom JSON Payload (Replace [Key] with the actual Release Key) | { "startInfo": { "ReleaseKey": "[Key]", "Strategy": "All", "RobotIds": [ ], "JobsCount": 0, "Source": "Manual" } } |
Request Headers (Replace [serviceInstanceLogicalName] with the actual Service Instance Logical Name | Authorization: Bearer #variable.access_token# X-UIPATH-TenantName: [serviceInstanceLogicalName] |
Under Store to Workflow Variable, map the status variable to the State attribute in the response JSON i.e.
...
status | value[0].State |
That’s it. The Joget process has been configured to invoke the UiPath Orchestrator API to start a job.
Now, let’s test the process. Click on the Run Process button at the top, then Run Process again in the confirmation dialog.
...
If you are running Joget on-premise and have access to the system logs, you will be able to see the tool requests and responses if the debugging option is enabled.
Sample log output:
Code Block |
---|
INFO 12 Jun 2019 09:28:38 org.joget.apps.app.lib.JsonTool - POST : https://account.uipath.com/oauth/token INFO 12 Jun 2019 09:28:38 org.joget.apps.app.lib.JsonTool - Custom JSON Payload : {_ "grant_type": "refresh_token",_ "client_id": "5v7PmPJL6FOGu6RB8I1Y4adLBhIwovQN",_ "refresh_token": "CBZcOD6vrP2FQ9qa8fuqDdfoEwnVPuR2Kpz-hitbTAIzG"_}_ INFO 12 Jun 2019 09:28:39 org.joget.apps.app.lib.JsonTool - https://account.uipath.com/oauth/token returned with status : 200 INFO 12 Jun 2019 09:28:39 org.joget.apps.app.lib.JsonTool - {"access_token":"eyJ0eX...","scope":"openid profile email offline_access","expires_in":86400,"token_type":"Bearer"} INFO 12 Jun 2019 09:28:39 org.joget.apps.app.lib.JsonTool - POST : https://platform.uipath.com/odata/Jobs/UiPath.Server.Configuration.OData.StartJobs INFO 12 Jun 2019 09:28:39 org.joget.apps.app.lib.JsonTool - Custom JSON Payload : { "startInfo":_ { "ReleaseKey": "b27c7363-459c-4520-bae5-660d4a1d3813",_ "Strategy": "All",_ "RobotIds": [ ],_ "JobsCount": 0,_ "Source": "Manual" _ } _}_ INFO 12 Jun 2019 09:28:39 org.joget.apps.app.lib.JsonTool - Adding request header Authorization : Bearer eyJ0eX... INFO 12 Jun 2019 09:28:39 org.joget.apps.app.lib.JsonTool - Adding request header X-UIPATH-TenantName : DemoDefaultzous50676 INFO 12 Jun 2019 09:28:40 org.joget.apps.app.lib.JsonTool - https://platform.uipath.com/odata/Jobs/UiPath.Server.Configuration.OData.StartJobs returned with status : 201 INFO 12 Jun 2019 09:28:40 org.joget.apps.app.lib.JsonTool - {"@odata.context":"https://platform.uipath.com/odata/$metadata#Jobs","value":[{"Key":"aa667a3e-04f9-4013-a8eb-ce701dac8799","StartTime":null,"EndTime":null,"State":"Pending","Source":"Manual","SourceType":"Manual","BatchExecutionKey":"68fa4d0a-0fcc-4d49-ae0d-b6631a7dfc78","Info":null,"CreationTime":"2019-06-12T09:28:12.9207318Z","StartingScheduleId":null,"ReleaseName":"Demo Process","Type":"Unattended","InputArguments":null,"OutputArguments":null,"HostMachineName":null,"HasMediaRecorded":false,"Id":10173064}]} |
...
Back at the UiPath Orchestrator and UiPath Robot, you would also be able to monitor the execution of the job.
The sample app containing this process can be downloaded below:
View file name APP_rpa_uipath-1-20190612141440.jwa height 250