Sunday, November 3, 2024

#1030 - OIC Integration Basics - Lab 2

Introduction

This post begins with a short introduction to the integration patterns supported by OIC. The lab then covers using the Oracle Database adapter to create an order in a DB table. 

Integration Patterns


OIC supports the following integration patterns -

  • synchronous - request/response
  • asynchronous - fire and forget
  • event driven
  • scheduled

Synchronous requests

Request/response, this is what you created in lab 1. Such integrations should execute quickly, especially if called from a UI. The OIC Service limit for sync integrations requires completion within 5 minutes. Also the default limit for concurrent sync instances or executions is 100. This 100 limit is dependent on the number of message packs assigned to the OIC instance, more about these packs later.

Asynchronous requests

Fire and forget - the request is persisted in OIC for future processing and a http 202 is returned to the client. Thus the async pattern makes efficient use of OIC resources. The default limit for concurrent async instances or executions is 50. This 50 limit is dependent on the number of message packs assigned to the OIC instance.

Event Driven

Use event driven, if you want near real time response to an event e.g. a service request, created in Fusion, should trigger an integration flow. Many of our adapters support such, there you have the ability to select the "Trigger" option - 

You can also design integrations triggered by the publication of an OIC Event, more about events later.

Scheduled

Scheduled integrations, as the name implies, run according to a schedule. Think of these as "batch" style jobs that run at a certain time every hour, every day etc. For example, a job that picks up all new purchase orders from an ERP, after close of business every day. Scheduled jobs are thus asynchronous and impinge on the service limit mentioned above.

OIC Connectivity Agent 

Some of the apps or technologies with which you need to integrate may be installed on-premise or in a private cloud. This is the case with the Oracle DB, used in the following lab. To enable connectivity from my on-premise DB to OIC, I need to install the Connectivity Agent. This is a lightweight, java based agent that can be downloaded from OIC and installed locally. Check out the OIC docs for further details.

Lab - Create Order in DB 

Starting point is the following DB table - 

First step is to create an Oracle DB connection in the project - 

   

      
Add username / password - 



Create an app-driven synchronous integration - 





















The integration will be triggered by a REST api call - the request is as follows - 

{"orderNr": "123",
"customer": "NiallC Inc.",
"product": "iBike",
"orderValue": 2400}

The response is as follows - 

{"orderNr": "123",
"status": "success"}







  































Now drop the DB connection after the Trigger action - 





























Now edit the CreateOrderDB Map action -

Map the Source fields to the Target - 




We will use a built-in OIC function to set the orderDate field.



























Now to creating the response - 



This enables editing - 








Summa Summarum

Lab 2 has covered use of the ORCL DB adapter. The next lab will cover external clients invoking this integration via its REST api. The details of this can be found here - 

 
It will also discuss error handling - the example we will use is that of Primary Key violation; orderNr is the primary key.


No comments: