Thursday, July 29, 2021

#873 OIC & Blue Prism part 2


This post goes into a bit more detail, especially on the Blue Prism side. The use case today is that of updating an excel sheet - Here's mine - today we are doing employee assessments and we will leverage Blue Prism to automatically assign performance values, based on the employee rating. Apologies to any Liam Mellows fans out there.

The employees have been rated - the performance fields just need to be updated. Our digital worker will take care of this.

The OIC process will invoke Blue Prism, passing the name of the excel sheet to be processed.

The Blue Prism process is as follows - 


Thanks to the following page for the instructions on how to create the above.

The logic is simple enough - 

  • Open workbook - Open the excel sheet
  • Get Collection - here we copy the workbook contents to the Employees collection
  • Loop over each employee entry
    • Update each employee performance field based on their rating
  • Write Data - update the Excel sheet
  • Save Data - Save Excel Sheet
  • Close Workbook - Close Excel Sheet
The process leverages the Blue Prism VBO(Visual Business Object) for Excel. This VBO is pre-seeded in the product. Think of this as an Excel adapter, providing us with functionality such as open close, write, save etc.
You see on the left a Data Item - Workbook Name. This is the variable which holds the name of the excel sheet to be processed.

I click on the big box - NiallCEmpPerformanceProcess - and check Publish this Process to Control Room.


Notice the Start and End actions - here is where I can define the request and response fields -

As you can see, I get the response value from a Data Item called, yes - you've guessed it - Response.

Simple enough - let's expose this process, creating the wsdl -


I save the generated wsdl locally - 

and use it in creating a new SOAP connection in OIC - 

The Integration is very simple - 

I activate and test - 

I check the Excel sheet - 

I can also check the run in the Blue Prism Control Panel -

I can also see the request value, sent by the OIC Integration - 

As well as the response returned - 

Tuesday, July 27, 2021

#872 OIC and Blue Prism RPA


I downloaded the BluePrism trial this morning, along with a set of 10 beginner labs they make available online.

Blue Prism Design Time

The focus of this post is not on how to design automations with Blue Prism; the 10 labs do a great job of that. The focus here is on how to invoke such from OIC. 

I will use the following process as an example - this is actually Lab4 

Blue Prism offers a rich set of process design actions -


Some of these have been used to add robustness to the process model, very important for mission critical automations.

The process shown above is very simple - it opens the Blue Prism website in InternetExplorer and searches for a specific topic - e.g. Coca Cola

So it is doing the following, from an automation perspective - 

1. open the page in IE
2. enter data - the search string - in the search box
3. press the search button.

I test this within the Blue Prism Design Studio and it works fine. The search value - Coca Cola - is hard coded, as you can see in the Data Items block above.

Now say I want to expose this functionality as a service - I will then need to define an input variable for the search string. This can be easily defined in the Start action. 

Essentially the input variable will be stored in the pre-defined Data Items field.

Next step is to expose this process as a web service - Blue Prism exposes these as SOAP services.

One needs to check the Enforce Document/literal encoding box.

This will generate a wsdl, hosted on the Blue Prism app server (I am using the on-premise version of the product). I save this wsdl locally.


I do a sanity test, using SOAP-UI - 

Here is the Blue Prism Search Page before the test - note the Search is for Coca Cola - 

Now I invoke the process from SOAP_UI, the search string set to Oracle -  and, quelle surprise, Oracle relevant articles are displayed.

looks good. 

Now to OIC...

I create a SOAP Connection, leveraging the wsdl generated by Blue Prism.


Note the use of the connectivity agent - as Blue Prism is installed locally on my laptop.

I now create an app driven orchestration -

The REST Trigger has the following Request payload -

I leverage the Blue Prism SOAP connection for the action I call InvokeRobot.
The SOAP Endpoint is configured as follows -

The Map is very simple - searchString from the request payload to - 

Now to a simple test of the OIC Integration - here is the status of the Blue Prism Search page before the test - Search for Oracle -

Here it is, after the test -

Very simple, like most of my blog post examples, however we are all experts at extrapolating. 

Thursday, July 22, 2021

Wednesday, July 21, 2021

#870 OIC Monitoring and Logging Analytics - adding Business Data to Dashboards

Integration Insight is THE solution for business user facing Dashboards on top of your integrations and processes. However, you can also surface business / payload data in Logging analytics. The example below is again based on the OIC Activity Stream logs. 

Now we do suggest turning off logging for your production integrations, however, there may be reasons for logging, such as for compliance purposes e.g. I need to prove when order nr 123 was processed. The OIC LOG action will still write to the OIC Activity Stream, even when flow logging has not been enabled. 

Here is my simple order processing integration - 


I activate, without enabling logging - 

I test - 

Check out the Activity Stream - 

I see the relevant log entry in Logging Analytics - 

Note, there is only 1 log entry for this integration flow, a small overhead. The admin needs a dashboard that shows which products are being ordered, in my case - different brews. So I need to parse the message and extract 'keg of Spalter Dunkel' - Spalter Dunkel is a great beer from my local brewery here in Franconia. Click here for the beer.

I need to add an extended field to the Logging Analytics Source for this value - 

Here is the regex - 

The extract expression contains a little "Schoenheitsfehler" - I have included the order nr, as you maybe have noticed. I really need to change the LOG action just to log the product.

But, it is an imperfect world, so weiter, weiter!

I have used the pre-seeded field - Message Info - as the field to hold the product name. 

The Log Explorer query is very simple -

I add a couple of more orders -

I add this to an existing Dashboard - 

there are other Visualizations available, for example - 

1. Line 


2. Word Cloud - 

3. Tree Map - 

4. Sunburst -


There are others as well - try them out!

Great stuff - now time for a pint -