Enter The Robots (A Different Kind)

Last week, I had the opportunity to do some work and part of the engagement there was to integrate some data. Easy right? It’s not that hard especially with the technology and standards we have these days. However, what was not apparent upfront until after some digging (ie research), an email and a phone call that there were no APIs to be found. “Ha ha ha … we’ve got you … there is no way you can do it now” So the challenge was accepted and instead of time travelling into the future to find a new way of doing things, I went totally retro. And hence the title “Enter The Robots“. I didn’t go and create new versions of robots or AI. I don’t create a new quantum computing paradigm. What I did do was classically known as screen-scraping. “ick“, I hear from the crowd. “How dare you?“, someone else yells out. But I say this honestly, if there is no other way to integrate and capture data, then I rather do it knowing that it is a last resort.

In this article, I walk through a few of the tips and tricks with what’s currently available to help out in this situation.

What’s The Background

For this scenario, Oracle Integration Cloud has a partnership with UiPath. Here’s a link to press release about the partnership – https://www.uipath.com/partners/technology-partners/oracle. What has resulted is the simple integration between the two platforms – UiPath Orchestrator and Oracle Integration Cloud. Here’s a quick snapshot of some of the parts working together.

Getting Started

To get started with this article and replicating this for yourself, you’ll need to two parts:

  • An Oracle Integration Cloud instance – if you want to get access to a promotional environment to test this out you can get it here (https://bit.ly/2pM0Gfa) – $400 AUD is available (equating to about 3,500 hours of compute time).
  • A UiPath Studio (Community Edition is suitable) – if you want to get access to UiPath to test this out you can get it here (https://bit.ly/2GYuYaw) – this will give you access to the Studio (to design) and Orchestrator (to run).

I won’t go into too much detail about the installation processes for each of these – but if you need a hand, reach out to us here.

A snapshot of a UiPath RPA Connection Configuration.

Design Your Robot

This is the exciting part happens, building your robot. Most of this action happens in UiPath Studio and using the extensions with Web Browsers, it is pretty easy to navigate. There’s a few tips.

Tip #1 – Your Robot Will Do What You Ask

This is true with any computing. The individual steps to code up each interaction needs to be considered event down to opening the browser, clicking on options, entering data into forms, submitting forms and closing the browser. The task may be tedious but if you consider what people do to interact with a web site (or even a mainframe), each of these interactions can be time consuming. Once you have your script, testing it within the context of the Studio as well as debugging it means you have done the heavy lifting. Because the robot was running on my laptop (or in other cases, it may be a server or workstation), having access to the session means that doing things like write data out to file or interacting across desktop applications becomes an enlightening experience. “I’ve never experienced this freedom

Tip #2 – Your Robot Will Take Over

This is also true. The robot will use the session that you are in (or a dedicated one) to run the commands or interactions. Ultimately, it’s performing the interactions that a user would do themselves (as themselves).

Tip #3 – Your Robot Needs Your Help

Depending on how intuitive the application (that you are integrating with) as well as how well-defined it is, your robot may need some help. From the experiences that I had, you do need to be prescriptive but also add some tolerances just in case something changes. In some of these cases (which was the one that I had), where the website changes or even as simple as tag change, then this can give your robot the wrong information and hence challenge it.

Here’s a couple of screens of the flows and some of the wizards that I took of what I did as well some of the execution where I needed to output to an Excel CSV file as well as return the data collected in the API response.

This is the website that we were wanting to interacting with.

This is the UiPath Process orchestration.

This is the data capture tool.

This is the output from the API capturing the data.

This is the output captured in a file.

The last thing that needs to happen is that the process needs to be published to the UiPath tenancy that you have (in the cloud). This process (and the specific version) will then be ready to be exposed to Oracle Integration Cloud.

API-Enabling Your Robot

Once you have your flow working even with input and output parameters defined, then it’s time to integrate it with Oracle Integration Cloud. UiPath connector is available to be instantiated with the UiPath details. Once the connection is created and attaching the end-point in the integration flow, the wizard navigates the UiPath process (and version) as well as the context variables to be used for the API.

Tip #1 – Context Variables (Matching)

The main coordination between UiPath and Oracle Integration Cloud is the variable definitions. In the OIC UiPath wizard, there are configuration parameters that denote the input and output variable names to be passed in and out. These variables appear in UiPath as context variables in the transaction. You need to retrieve the transaction using GetTransaction (https://activities.uipath.com/docs/get-queue-item) that can be then used to extract out the input variable and then using SetTransactionStatus (https://activities.uipath.com/docs/set-transaction-status) that can be then used to insert the output variable to send it back to OIC.

To pass values into UiPath,. Once you have a transaction defined, configure an assign expression similar to this example (where “CashIn” was defined in the OIC wizard as the input variable) to pass in the variable,

CashIn = transactionItem.SpecificContent(“CashIn”).ToString

To pass values from UiPath, set the output with a defined parameter (where “CashOut” was defined in the OIC wizard as the output variable) to pass out the variable.

The output arguments from the process.

Tip #2 – Mappings

The mappings in and out of the integration is pretty simple – there is an input and an output. So, also long at the data is mapped to these then it’s pretty simple. (disclaimer – I haven’t done much work in terms of the manipulation of data objects in UiPath so not sure about complex types and working with them in UiPath).

This is the input variable mapping.

This is the output variable mapping.

Where I Left It …

That’s pretty much where I go to. It was built and functional. There will be areas of non-functional that have come up around things like: connectivity, security, reliability, scalability, availability, DevOps – all of which are important. But this gives you a take of Robotic Process Automation (RPA) and what robots can do for us.

Author: Jason Lowe

Also known as: JLo, JSON I am passionate about how organisations adopt IT quickly and sustainably to achieve a specific and measurable outcome. This thinking is supported through lean IT practices in operational support and project delivery, and adopting these practices with Oracle technologies by creating sustainable platforms. I'm also interested different perspectives and drivers - from enterprise to start-ups, academia to commercial to public sector, cost-sensitive (risk) to value-driven (reward) - all of which influences decisions that organisations make. I have a passion for community and have been called "a connector" - meeting new people that are trying to solve valuable and hard problems and connecting them with others that can validate and help realise their full potential. I support different organisations like TADHack and Hacking Health as a global organiser and is a persistent blogger on medium.com and redthunder.blog, and a podcaster on #DigitalImpactRadio sharing stories of the community that need to be told to the world.

2 thoughts on “Enter The Robots (A Different Kind)”

  1. As per your blog you are sending a single string to UiPath, what If I want to sent a group of records to UiPath Orderchestrator Queue. How to send multiple records from OIC and read multiple records in UiPath


    1. Jagadeesh – since writing this article a few years ago, there’s been a few more advancements. From what I see (vs what I’ve done), its still very much parameter-based so parameters are atomic by nature. So, record structure would need to be parsed in/out through the UIPath API. https://docs.oracle.com/en/cloud/paas/integration-cloud/uipath-rpa-adapter/uipath-robotic-process-automation-adapter-robot-configuration-page.html#GUID-07C2ECFB-75FB-4144-A35D-BA41838D1735


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s