Friday, July 17, 2026

#1154 - OIC 26.07 - Support for Dynamic JSON

Introduction

So what do we mean here by dynamic JSON? 

Here's a very simple example of such - I have an integration that processes product returns. The trigger request payload is as follows - 

Now I need to add support for possible extra fields such as product
I've clicked Allow Dynamic JSON and have defined the response as follows - 

Let's misuse the status field and fill it with the product value.

Here I need to edit the XSLT in the Mapper. First, let's map the orderNr to status - 

Check out the XSLT - 

  <ns14:response-wrapper>
                          <ns14:status>
                                <xsl:value-of select="/nstrgmpr:execute/ns14:request-wrapper/ns14:details/ns14:orderNr"/>
                          </ns14:status>
                    </ns14:response-wrapper>




Now I edit the value-of as follows - 

 <ns14:response-wrapper>
                          <ns14:status>
                                <xsl:value-of select="/nstrgmpr:execute/ns14:request-wrapper/ns14:details/*[local-name()='product']"/>
                          </ns14:status>
                    </ns14:response-wrapper>

Note the format I need to use. Now let's try this in a Switch action. I need to log the product value, if it is present. 

Here I use - string-length(/ns13:execute/ns10:request-wrapper/ns10:details/*[(local-name() = 'product')]) > 0

The Logger action is configured as follows - 


/ns13:execute/ns10:request-wrapper/ns10:details/*[(local-name() = 'product')]



Let's run the integration - run with no product field - 

Run with product field - 

I check the Switch







 


Monday, July 13, 2026

#1153 - 26.07 New Features

Introduction 


Your dev shape instances should have been upgraded to 26.07, so let's check out the new features you get. I'm attempting to adhere, as much as possible, to the new features list in the official what's new doc, available here.

Human in the Loop 

  • new approval patterns/recipes
  • new HITL actions
26.07 sees the addition of 2 more approval recipes for HITL -

  • HITL - Parallel Approval Workflow
  • HITL - Tiered Approval Flow
I create a tool based on Parallel Approval Workflow and see the following artifacts have been created - 

Let's look at it - 

Now to the HITL Workflow - 

A demo form is also generated - 

As you can see from the generated workflow, we now support new actions; these can also be leveraged in your own custom workflows -

Note the support for If/Else and Parallel gateways, also see the support for Notifications -  

Now to the Tiered Approval Flow - 

As you can see, just a variation on the "approval" theme.

AI Assistant

The 26.07 release ushers in assistant support for OIC best practices -

Make sure you try this out, may save a lot of heartache and re-work later.

AI Generated Test Cases

I can save the test cases as PDF, and I can also regenerate the test cases, for example, after making major changes to the integration.

New Data Translate Action

According to the what's new doc- You can directly translate data between a native JSON payload and flat, stringified JSON with the data translate action. The data translate action simplifies integration design by removing the need for multiple stage file actions and a JavaScript action function to perform the translation.
 
You can check out the new feature details in the OIC doc here

Here's a simple example - I have an app driven integration with the following request/response -

Net, net - input is an order in JSON fomat, output should be stringified json.

The new action supports the following operations - 




I run the integration - 

Enable Retry in Parallel Action

Selecting Enable Retry will retry the branch, on error during runtime. Unchecked? No retry!

Enable Retry in For-Each Action

Here I have a scheduled integration that invokes the ftp adapter to list files in a certain directory. I then add the For-Each action to process each file -

I check Process items in parallel and then get the option to Enable Retry -  

This feature is only available in scheduled integrations.

REST Adapter - Disable Retries on 504

So what does an HTTP 504 error  indicate? 
An HTTP 504 (Gateway Timeout) error means a server acting as a gateway or proxy did not receive a timely response from an upstream server. This usually indicates the website's backend is overloaded, experiencing network issues, or struggling with slow queries etc.

Net, net, this option gives you flexibility to decide whether it makes sense to retry or not. For example, your target backend system may already be overloaded, so OIC doing auto-retires will only exacerbate the situation. 


REST Adapter - support for dynamic JSON


Please check out the separate post here.

New OCI Cache Adapter

This is a great addition to our adapter toolset - 

OCI Cache - Achieve submillisecond latency with Oracle Cloud Infrastructure (OCI) Cache, a fully managed Valkey and Redis service engineered for exceptional scalability and consistent high availability. Propel your applications to perform faster and more reliably than ever.

The adapter provides the following functionality - 

The Cluster-mode can be set to Sharded or Non-sharded. The difference is as follows - Non-sharded caches duplicate all data across 1 to 5 nodes for high availability, while sharded caches split large datasets across up to 100 partitions ("shards") to handle massive volumes and heavier write traffic.

Check out my colleague Madhav's excellent post here for all thing new Connectivity with 26.07.

Observability

With this release, we audit user viewing of the activity stream of integration flows.

Summa Summarum


OIC 26.07 provides a rich set of new features, that really accelerate the development f your process automations. I'm looking forward to your feedback!


Wednesday, July 8, 2026

#1152 - OIC Service Metrics in OCI Management Dashboards - suppressing null values

Introduction

I want to have a widget that displays errors by the hour, however, only for hours where I have errors.
So here is my widget in my OCI Log Analytics dashboard -

The dashes naturally indicate no errors.

Let's try out the following in OCI Management Dashboards, i.e. I'm leaving Log Analytics

I see the same dashboards here, the one I'm interested in his the suffix _V2.

I open it and click edit - 

The MQL - MessagesFailedCount[1h]{resourceId = $(params.instance_ocid)}.sum()

Click on JSON
Add the following line - 
"preventFillGaps": true
Click Apply, then check out the result - 

I run a couple of integrations that will throw errors - 

6 errors - 2 each for the following integrations - 

  • async process order
  • child create order
  • sync update order
Back in Management Dashboards - I change the visualisation to Bar Chart - 

Note: I also reduced the time window in the MQL to 1 minute, so I'd see the result immediately.

A big thanks to my colleague Sindhuja B. for the tip!

Note how only 2 of the integrations are visualised - I need to amend the widget configuration - 

I set the series to flowCode.


I cannot set the Series to flowCode + flowVersion, so please note this limitation.

I can now open the dashboard in OCI Log Analytics and see the amended widget -