OPA 23.02 New Features

The 23.02 release of OCI Process Automation (OPA) is just around the corner, and with it we will see the introduction of several new and exciting features. This release had two major themes for us: improving connectivity and end-user usability. In that spirit, it brings the following:

  • Support for the OCI Signature Policy in connectors  
  • Improved and more contextual error messages during design time and workspace interactions
  • Enhanced visibility in service task invocations
  • Improved experience when using the expression builder

You can find the full list of new features introduced in this release here. In the rest of this blog, I will provide a quick overview of each major feature.

If you are keen to play with any of these features, you don’t need to wait very long as this release of OCI Process Automation (OPA) should be rolled out to all OPA customers by the end of February ’23.

 

OCI Signature Policy

The OCI Signature Policy allows OPA developers to connect to Oracle Cloud Infrastructure (OCI) services directly from OPA through the existing REST connector. The addition of this policy enables us to natively support a variety of new use cases. Let’s explore some of these here:

OCI Vision

Oracle Cloud Infrastructure (OCI) Vision is an AI service for performing image analysis at scale. This service can classify images into any number of categories to accomplish digital asset management initiatives or to identify issues that need attention.  Let’s explore a potential use case for using OCI Vision with OCI Process Automation:

  • An Energy utility customer can leverage camera images to take photos of vegetation near their powerlines. When OCI Vision detects vegetation overgrowth, a process application can be triggered that alerts a team of maintenance technicians and assigns a task to their team’s queue. An OCI Process Automation workflow can be used to ensure that all tasks are approved and actioned in a timely manner as well as ensuring that an audit trail of all actions taken is maintained.

OCI Document Understanding

Oracle Cloud Infrastructure Document Understanding is an AI service that enables developers to extract text, tables, and other key data from documents. With OCI Document Understanding, customers can automate tasks that traditionally relied on manual data re-entry. Let’s take a look at a potential use case with OPA:

  • An OPA form can be used to allow end-users to upload receipts as part of their Expense Approval process. These receipts can be sent to OCI Document Understanding, which can extract all relevant text and return it to OPA. The process flow can then take this data and use it for internal routing or to create a consolidated expense report. The expense report can be subsequently sent to managers for approval or interfaced to a system of record such as Oracle ERP Cloud. In addition to receipts, OCI Document Understanding supports a number of other out-of-the-box document types such as Invoices, Driver’s License, Passports , Bank Statements, Payslips, etc. The service also allow you to create custom document extraction models too, catering for any industry specific use cases.

OCI Language

Oracle Cloud Infrastructure (OCI) Language is an AI service for performing sophisticated text analysis. With pretrained models and custom model support, developers can process unstructured text and extract insights based on sentiment, named entity recognition, language, and text classification. Once again, let’s explore a use case with OPA:

  • Many process applications involve forms where end-users need to enter data. OCI Language can be used in the backend of OPA forms to identify end-user sentiment based on the text they enter in free form text input fields or process comments. A negative sentiment can drive the priority of the process tasks to ensure they are dealt with urgently. Another use case is to use OCI Language to detect Personal Identifiable information (PII) entered into these free form text input fields. Once detected PII data can be masked to ensure compliance with regulations such as GDPR.

OCI Functions

Oracle Cloud Infrastructure (OCI) Functions is a serverless, event-driven service that lets developers build, run, and scale applications without provisioning or managing any infrastructure. OCI Functions provide a great mechanism to extend the capabilities of process automation workflows, as now you can invoke these functions through service tasks in a process flow or via a process web-form. 

  • Some examples of what you can do with functions today to extend your process are: use them to write/read data from OCI Object Store or Oracle Databases; encrypt/ decrypt data, convert data to different formats, communicate with SOAP based endpoints or to send a notification via SMS or Slack.  

OCI Queue

Oracle Cloud Infrastructure (OCI) Queue is a service that enables asynchronous (decoupled) communication between systems. With the addition of the OCI Security Policy, OPA can use OCI Queue as a message broker. Here OPA can be configured to either publish or subscribe to/from a queue as part of a process workflow. This pattern can be useful when application decoupling; reliable message processing or protection against load fluctuations in downstream systems is required.  

You will find the OCI Signature Policy when defining the Security configuration for your connector within OPA. Once the OCI Signature Policy is selected, you will need to enter your Tenancy and User OCID, Fingerprint and Private Key:

OPA REST Connector Security Policies

OPA Signature Policy

For more information on how to use the OCI Signature Policy in OPA, check out our documentation here.

Note: See the Appendix of this blog for an example that shows you how to configure OPA to talk to an OCI service (OCI Function)

 

Usability  Improvements

We have made several small but important usability improvements in the OPA Designer and Workspace in 23.02. I want to highlight some of these here:

Workspace Tracking Audit

The runtime Audit UI will now indicate the completion status of each activity through the colour of the line against it. This can now be used to quickly identify which activity step has failed:

OPA Instance Tracking

We have also exposed more information to help developers troubleshoot service task related issues in OPA.  The changes we have made here are:

  • Surfaced Path & Query paraments (when used as part of the request)
  • Surfaced (non-security related) request headers
  • Exposed service task errors against the failed activity in the response body

By providing this information against a failed service task activity, we hope that developers will be able to correlate OPA service requests against calls made via a REST client, to effectively troubleshoot any API invocations. You can see a depiction of this below:  

OPA Tracking Audit

 

Forms Text Area Component

We have also made a small change in our Forms, allowing you to now resize text area components dynamically. This allows end-users to better see large amounts of text without the need to use scroll controllers:

OPA Form Text Area

 

Summary

The 23.02 release, realizes an important milestone for us in that we can now talk natively with other OCI services. Usability improvements in key areas such as service task execution should greatly help developers troubleshoot issues going forward.  

We have much more coming in 23.04, so stay tuned for the next new features blog in this series!

 

Appendix – Calling an OCI Function from OPA

In this guide I will walk you through the steps required to invoke an OCI service. In this case; an OCI Function. To follow along you should:

  • Have an existing OCI tenancy
  • Have created and deployed a function (you can use a simple HelloWorld app to get started but if you are new to functions, see this guide)
  • The function must accept and return content in application/json format

Step 1:  Create the Connector

The first thing that you will need to do is locate the base URL of your OCI Function application. To do so head to the OCI Console and navigate to your desired Functions application. Once there look for the invoke endpoint and retrieve the base URL (up to function OCID):

OCI Console

Next navigate to your OPA instance and create a new REST Connector. Give the connector an appropriate title and description and specify the base URL:

OPA Add REST Connector

With the base URL defined you will need to add a resource and an operation (one for each function that you will need to trigger in OPA): 

OPA Connector Definition

In each operation I have created a request and response definition that would mimic the JSON payload that I am expecting OPA to send or receive from the function. In addition to this, notice the function OCID in the endpoint path (this will uniquely identify the function that you want to call. You can also retrieve this value as above, via the OCI Console):

OPA Request Definition

Finally, I will need to define my security policy. This is where I will need to select the OCI Signature Policy and provide my tenancy and user OCID, Fingerprint, Private Key, and Passphrase. You can follow our documentation, which can help you find this information.

OCI Signature Policy

Step 2:  Call the Function from a Process

With the connection configured you can now call your function from your Structured or Dynamic Process.

To call the function from a process, simply drag a Service Activity on to the canvas and configure it to point to the previously configured connector (service/resource & operation):

OPA Process Flow

Next map your data associations, passing in any input parameters required by your function:

OPA Data Mapper

Likewise ensure that you map the output of the function response to objects within your process flow, so that you can use the response data from your function in your OPA flow.

That’s it! Its that simple.

 

You can also call functions from OPA forms through Events as you would with any other REST service. If you are not familiar with how to do this, see here.