X

The Integration blog covers the latest in product updates, best practices, customer stories, and more.

Use Data Stitch to simplify integrations

Thomas Hora
Senior Director of Development

In this blog, we will look at a new integration feature, Data Stitch, and show how it can simplify integrations to help us reduce maintenance costs.  Data Stitch allows us to make assignments to complex type variables.

Prerequisite

Enable following features:

  • oic.ics.console.integration.stitch-action
  • oic.ics.console.integration.complex-variables

To enable feature flags – Refer to Blog Enabling Feature Flags in Oracle Integration

The minimum Oracle Integration version required for the feature is 200113.1400.33493

Use case: 

  • We have deployed 3 instances of the application service in 3 regions (APAC, EMEA, AMER).
  • 3 separate REST connections are used to handle 3 separate endpoint URIs and credentials for each region.
  • We have an integration with 3 invokes to the CreateOrder REST API using the 3 connections.
  • The payloads to these invokes are identical, only difference is the connection used.

Maps can be heavy.  They may handle cardinality differences between source and target, or involve loops, functions, etc.  If we need to build, test, maintain 3 maps it can be costly and error prone.  Ideally, we only want to do this mapping once to improve developer productivity.

Solution:

We can re-use the first map to the APAC CreateOrder request, and then leverage Data Stitch to copy this request to the EMEA and AMER CreateOrder requests.

Move the map to APAC CreateOrder outside of the APAC Region condition

Delete the Map to EMEA CreateOrder and AMER CreateOrder.

Add Data Stitch action before EMEA CreateOrder to assign the APAC CreateOrder request payload which is already mapped to the EMEA CreateOrder request payload.

Give the Data Stitch action a name and click configure.

In the Variable field (To), click Browse All Data to open the schema tree.

Under Sources, select the EMEA_CreateOrder_Request/execute/Account variable, and drag & drop it into the Variable field.

With the Variable field populated, the Operation field defaults to Assign, and the Value field appears. 

Accept the Operation field default as Assign. 

In the Value field (From), use the schema tree to select APAC_CreateOrder_Request/execute/Account.

Optionally, imagine the EMEA request payload is not precisely the same as the APAC request.  Suppose the request is identical except I need to override one field in the case of EMEA.  To achieve this, I can add a second Stitch statement to override the specific field inside the Account object.  Stitch statements are executed sequentially at runtime.

To achieve this, I click the “+” icon to add another Stitch statement.

In the Variable field (To), select EMEA_CreateOrder_Request/execute/Account/AccountDetails/ExternalSystemId.  Since AccountDetails is an array, we may need to qualify which element of the array is to be used.

Click on the tool icon to the right to toggle the Expression Box to developer mode for advanced expression editing.  In this case, we will qualify the expression with AccountDetails[1] to pickup the first record in the account details array.

Accept the Operation field default as Assign. 

In the Value field (From), you could use the schema tree to select the desired value, or just type a string, such as “ABC123”.

We have completed this Stitch action.  Click “X” to close the editor and apply changes. 

Repeat the steps to create another Stitch action to assign the APAC CreateOrder variable to the AMER CreateOrder variable in the AMER branch.

When complete, the integration will look like this.

Now, our integration only requires one Map to our first invoke.  We used Data Stitch to copy the payload to our subsequent invokes.  We may have also used Data Stitch to override specific fields for some of the invokes.  Our maintenance costs for this integration have been reduced because in the future we only need to maintain one map instead of 3. 

Data Stitch is a valuable tool which can simplify our integrations!

Be the first to comment

Comments ( 0 )
Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.