Wednesday, February 14, 2018

#618 Oracle Integration Cloud (OIC) and Robotic Process Automation (RPA)

OIC and RPA a killer combination.
You may have read the announcement at OOW about the partnership between
Oracle and UI Path.

UI Path is the leading RPA vendor out there and the partnership with Oracle allows
us to cover the whole integration spectrum.

Simple scenario - I need to process an order. It needs to be approved and then written to my Fusion ERP instance as well as to a mainframe app. The latter has no nice web services or REST APIs. Normally, the employee has to swivel around and re-enter the data via the green screen or VT100 terminal. Now, with RPA, we can leave such tedious work to the robots.

I always loved robots, from the first time I heard Kraftwerk's - Wir sind die Roboter - I've been a fan.
So it was with great pleasure that I started looking at the combined offering.

So what do you get with UI Path?

1. UI Studio - a windows based design tool for you to create your automation projects.
2. UI Orchestrator - Cloud or on-premise based tool that controls the work of the robots.
3. Robots - the executors.

What do I get with OIC?

1. ability to call the orchestrator and get work done. This can currently be done via an integration leveraging the UI Path REST apis. Going forward, I could envisage this been turned into a blackbox e.g. RPA adapter. This ability to go the last mile, in respect of integrating with apps that have no standards based interfaces, had been missing in OIC. Instead of needing a plethora of tools you just take the OIC toolbox and use as required.

Now to a simple demo -

As I don't have a mainframe at home, I will use a web app as the target system. It is actually an APEX app, running on DB CS.

As you can see, I have a few customers already.

So I how do I automate customer creation?

One approach is to record the actual key strokes etc. needed to create a customer.
I can do this via the UI Studio. But, before I do the recording, I need to install an extension to Chrome. This I can do from UI Studio -

Then I can create a new project and record customer data entry -

The recording metadata, for my example,  looks as follows -

As you can no doubt decipher, we log in, enter user and password and then click
the Sign In button.
The recording continues with the other required actions - check if the customer already exists. If so, update the customer, otherwise create a new customer record.

Ok, that is what I want the robot to execute, now to the robot itself.
I can install the robot on any windows machine. For me, everything is running on my laptop.

However, before installing the robot, I need to set up some artifacts on UI Path Orchestrator.
Again, the orchestrator is the intelligence behind RPA. It knows what projects are available and also  which robots are standing by ready to do the necessary.

Robots are made available in Environments, so I begin by creating one. I then create the robot
and add it to the environment. Robot definitions in the orchestrator include a key. This key will be used by my on-premise robot to connect to the orchestrator.

Now what about the project in UI Studio?
I publish that to the orchestrator as follows -

It appears in the Orchestrator as a Package -

This I can then add to a Process - the unit of execution.

Last step is to define a Queue - think of this as simply a work queue, containing input for the robots. In my case, new customers.

Ok, so now I have the process and the robot definition. We have also defined a work Queue.

Now to the robot itself.
The UI Path Studio download includes the robot.exe, so I click on this and configure with the robot key.
The result -

Now to how one controls robot execution from OIC -

I create an integration in OIC and do the following actions -

Authenticate against the orchestrator.
We do this via a UI Path REST request.
Add Queue Item
Here we are putting a new customer request into the Queue, again via the REST api.
Start Job
Essentially instructing the robot to execute the process on the payload form the Queue,
        yet another REST api call.

Get QueueID from Name
This id will be used to check for the job status - REST api call.
  Check Status of Robot
Here we check for successful completion - REST api call.

So we need to make 5 REST api calls to UI Path orchestrator to manage robotic execution.

Here is my integration -

Don't bother trying to decipher the above screenshot.
Essentially it contains the above actions with a final SWITCH to process successful or errorred executions.

All I then need to do is activate and test the OIC integration.
I do this via Postman -

The integration starts and my robot gets going and opens the browser at my web app. It logs in and enters the new customer. I cannot do any screenshots of this as it would interrupt the robot.

I then check in my Apex app for the new customer - Renate Commiskey, and there she is -

No comments: