Friday, April 5, 2024

#1013 OIC 24.04 New Features

Welcome to this deep dive on the April release new features. 

The release has a plethora of new features, highlights from an OIC developer perspective are probably the native action for OIC File Server and connection sharing between projects. As Frank Carson used to say - "and there's more..." So, without further ado, let's begin.




Enable JSON payload validation
























AA-JSON-Validation is a simple REST based synchronous integration.
Enabling payload validation will check for duplicates in the payload e.g. my original payload is 
{
  "product": "iBike",
  "orderStatus": "pending",
  "orderNr": "1234",
  "customer": "NiallC Inc."
}

and I test with -
{
  "product": "iBike",
  "product": "iBike",
  "orderStatus": "pending",
  "orderNr": "1234",
  "customer": "NiallC Inc."
}

Activity stream sorted by activity duration

This is another excellent feature coming with 24.04.
This give us the ability to sort the activity stream actions by duration to execute. This makes it very easy to check out which action is taking the longest time to execute. This may be your bottleneck!


 

OCI Logging - OIC now sending more data


You can easily enable the sending of a subset of the OIC activity stream data to OCI Logging.

This is done via the OIC management page in the OCI console -

With 24.04 we are sending more data to OCI Logging. This data can be used to enhance dashboards, including those in OCI Logging Analytics. The more data, the better, correct?

So which new fields are we pushing from OIC to OCI Logging?

The 24.04 data structure is on the right; the new fields are -

  • opcRequestId - think of this akin to a guid 
  • projectCode - identifies the project to which the integration belongs
These 2 integrations, which process orders, have 3 tracking fields set - orderNr, customer and product.

note the following in the 24.04 OCI Log - 

Let's check out one of these log entries - 

So now we have the tracking field values available to us in OCI Logging and, very easily, in OCI Logging Analytics. These can power more business oriented dashboards.



 


File server action in the integration canvas

This makes it very easy to interact with your local OIC File Server. There is no more need to create an FTP connection. The action allows one to work with the following 2 resources - 
  • directories
  • files






Here's a simple example of moving files - 

Naturally, this feature is dependent on OIC File Server being activated.

Check out the video of the above use case 


Connection Sharing between Projects

This is a big one - the ability to define a connection once and share it between multiple projects. This allows us to have a "global" project, containing connections that will be used by multiple other projects. Here's a simple example of that at work - 

I create an ERP connection as follows - note the Share slide control.

 
I then leverage this connection in another project - 




Note, no need to test this shared connection - 

Custom Endpoint Support

Custom Endpoint enables mapping of customer owned URL (including domain/subdomain) to their Oracle Integration instance. This means that you can use integration.example.com (assuming example.com is the domain name owned by customer) in addition to the URL created by Oracle Integration provisioning.

Customer Managed Disaster Recovery

Thanks to the custom endpoint support, OIC3 now supports customer managed disaster recovery. There will be a whitepaper available that will document the exact steps required.


Factory REST API Enhancements

New API - Delete a Connection in a Project -








New API - Delete an Integration Version in a Project - 

New API - Import an Integration into a Project - 

New Library apis - Delete a Library Version from a Project and Import a Library into a Project.


New Lookup apis - Delete a Lookup from a Project and Import a Lookup into a Project.









There are also new adapters and enhancements to existing adapters, which are covered in a separate post from my colleagues. Please check them out here



Sunday, March 24, 2024

#1012 - OIC Rapid Adapter Builder Enhancements

There have been some enhancements to the Rapid Adapter Builder -


The project directory structure has changes somewhat - 

api - this is used when your input is an open api spec.

misc - this is used when your input is a postman collection. 

Note, the OIC instance connect information has been externalised.

This makes sense, imagine an oracle partner creating custom adapters. The partner will not know the OIC instance details of the end-consumers.


Check out the documentation here







Sunday, March 3, 2024

#1011 OIC 24.02 New Features - Observability / REST API

Some nice new features coming with 24.02 - 

1. Activity Stream now shows which user triggered an integration flow - 


2. New REST API attributes for min/max execution duration.








Let's try this out on the following flows - 


So the 3 flows executed as follows - 

  • 10.26 seconds
    • DUg3ptn3Ee69UfUKGnU7wg
  • 5.14 seconds
    • KgPdvtn3Ee6_QJ3NwcOM1g 
  • 2.03 seconds
    • INMd3tn3Ee69UfUKGnU7wg
I run the api with minDuration=1000 msecs
https://design.integration.us-phoenix-1.ocp.oraclecloud.com/ic/api/integration/v1/monitoring/instances?integrationInstance=myOICInstance&q={timewindow:'1h', code:'AA_ORDERPROCESS', minDuration:'1000'}

Count = 3 is returned.





 I run again with minDuration = 5000 msecs - This time only 2 are returned - 
those with the following instance ids -

- KgPdvtn3Ee6_QJ3NwcOM1g (5.14 secs)
- DUg3ptn3Ee69UfUKGnU7wg (10.26 secs)

So this returns those instances that took at least 5000 msecs to execute.





Next test is with maxDuration = 3000 msecs -






















This returns only 1 flow - that with the instance id INMd3tn3Ee69UfUKGnU7wg (2.03 secs)

I try again with max set to 6000 msecs - 
























This returns 2 flows - 

- KgPdvtn3Ee6_QJ3NwcOM1g (5.14 secs)
- INMd3tn3Ee69UfUKGnU7w (2.03 secs)

i.e. those instances that executed within 6 seconds.

 






Thursday, February 22, 2024

#1010 AS2 Trigger / Invoke

The use case is to receive / send pdfs over AS2. No trading partner management is required.

I begin with the receive -

Create a Trigger AS2 Connection in OIC - 


Create a Sync Integration 


The logic is simple, just write the pdf to OIC File Server.

The Trigger configuration is basic - 






























The mapping uses the function - 



The target is - 


The FTP Invoke - 
























Let's try this out from Postman - 


I also added the AS2 headers - 


I check out the activity stream in OIC - 
























I check the ftp directory/folder for the file - 

note the file name - out-3.pdf. This is not the first time I've tested this!

So the basic inbound flow works.

Now let's look at using the AS2 adapter as an Invoke - 

Here I create a new scheduled integration that lists the files in the /In folder and then invokes the receive integration I just described.

The invoke connection uses the endpoint of the receive integration - 


The scheduled integration is as follows - 


The For-Each


Here is the configuration of the AS2 invoke - 


The mapping is simple - the reference returned by the GetFile operation has to be encoded to Base64 - 













That's it - let's test!

1 file processed - 


Check out the ftp folder -