Subscribing to Fusion Custom Business Events in OIC

Background



Integration with all Oracle Fusion based Cloud services - like Oracle Financials Cloud , Oracle SCM Cloud, Oracle Engagement Cloud each service publishes Business Events wherein Oracle Integration can subscribe. Events is a great way to broadcast information to downstream systems for Real Time Synchronization

ERP cloud publishes 2 types of events. In this blog we will see how Custom Business Events can be published in ERP cloud and subscribe in OIC

Whenever we create a new custom object in Oracle ERP Cloud using Oracle Application Composer,  custom business events can be published explicitly. Once published, these business events can be subscribed from Oracle Integration (OIC). Business Events  are visible for selection when configuring the Oracle ERP Cloud Adapter in OIC as a trigger connection in the Adapter Endpoint Configuration Wizard.

For each Custom parent Object, OIC supports 3 Standard Events (Create, update, and delete ). Any operations on child custom objects generate update events for the parent custom objects. When  a record is created, OIC is notified with record detail information through event handler framework on subscription to any related events

Usecase

Let's say we want to build Transform Work Order Custom Functionality wherein a Shipping Clerk who has access to a custom page and provides "Transform From Item" and "Transform To Item" along with other details and Submits the Transform Work Order Request from ERP cloud. A Supervisor from Work Execution side reviews the Transform Work Order request from his/her Worklist item and approves the same. Once the Work Order is successfully created the status of Transform Work Order Request needs to updated with relevant status. This is bit of a custom functionality wherein the components in OIC helps us to design this usecase. In this blog we will see a high level design pattern and steps on how to achieve the whole use case.

Configure

  • Create a Custom Object in ERP Cloud
  • Generate Custom Object Pages (Create/Update Layouts)


Note: Refer Support note 2535444.1  for detailed verbiage of the steps 
  • Set the profile option, ZCX_CUSTOM_OBJECT_EVENTS, which is used to enable and register custom object events. The profile option is disabled by default
  • Generate Integration Events from Application Composer. This step publishes custom objects as Integration events
  • Verify if the events are published in the custom catalog
$ curl --location --request GET 'https://<erp_cloud_host>/soa-infra/PublicEvent/customCatalog' --header 'Authorization: Basic abcedefghiji=' \

The custom object event should be available in the catalog

Architecture


Flow1

  • Shipping clerk creates a Transform Work Request in ERP Cloud and a Custom Object event is raised
  • Oracle Integration listens to the Custom Object event, transforms and pushes the relevant information to a Process Automation for a Supervisor approval

Flow2

  • Supervisor reviews the Work order request and approves
  • Work Order is created
  • Transform work Request status is updated and notifies the Shipping Clerk

Design


Implementation

We will see high level implementation of the usecase mentioned

Create Process Workflow

  • Create a message based async workflow
  • Define Input Message Interface with structure something like below
{
"WorkOrderNumber": "TWR-111-1111",
"WorkOrderType":"TRANSFORM", 
"OrganizationCode":"002", 
"InventoryItemId":100000209827062,
"TransformFromItemId":100000209829050, 
"PlannedStartQuantity":1, 
"PlannedStartDate":"2021-02-25T08:30:00-05:00",
"ExplosionFlag":false 
}
  • Configure Human Task approval form of your choice with certain fields to show it to the approver
  • Invoke Flow2 Integration flow (Refer below for high level implementation)

Create Integration Flow1

  • Subscribe to Custom Object Event (Create) using ERP Adapter wizard. ERP cloud adapter discovers all the custom events published. We may have to refresh the metadata of the ERP cloud adapter connection to reflect the updated catalog.
  • Invoke ItemV2->GET REST service to get Item ID (From Item). Similarly, make another call to get Item Id (To Item). Work Order can be created only with Item Ids. Hence, we need this information

Construct the Item Search Query q=ItemNumber=<value>;OrganizationCode=<value> in the mapper
  • Invoke Process Flow
Final Integration Flow


Create Integration Flow2

  • Create a proxy interface using REST Adapter (Invoked from Process Flow). You can use the above sample interface used in process flow
  • Invoke Transform Work Order service using REST Adapter. Refer ERP Cloud API documentation for sample Request/Response interface
  • Custom Objects can be updated using Primary Key "Id" only. So, we will invoke a Custom Object Service and query using "Record Number" information. ERP Cloud adapter discovers the Custom Object published.

Construct the query in the mapper as q=RecordName=<work order number>
  • Update Custom Object service using the Record Id using update operation

Conclusion

ERP Cloud adapter in Oracle Integration supports Custom Object events to propagate Real Time data to downstream applications. OIC is a cohesive platform which helps to design Process Workflows which can be invoked from an Integration flow asynchronously and vice-versa.

This pattern helps Customers to architect and design their Custom Application needs while they create minimal UX using Fusion Application Composer and Standardize the orchestration logic in Process/Integration flows in OIC for better manageability.













Comments