Friday, May 28, 2021

OIC - How to handle error for outbound flow respective to ERP system.

Here i will discuss how we can handle the errors for outbound flow respect to Oracle ERP system.

Use case:

For example, supplier address or cost center or COA details or any reconciliation report are sending from ERP to any other system. Generally in this case, we are crating OTBI report on the ERP db layers and then call the BI report from OIC using BI wsdl service. In this flow, if any error occurs, then we can handle it with creating logs, creating incident or email notifications.

Implementation steps: outboubd flow(ERP to any other system):

Step1: In the scope body

Add "if and otherwise" block as needed after each invoke to sub integration or endpoints or invoking APIs, soap service etc and when if condition fails, sending a throw new fault" with code. Reason and Details.(justified hardcoded details).

For example, suppose , you are calling BI report soap service  and in this case you add a if and otherwise block and logic is if the response from ERP is empty then you are throwing a new fault which will be handled in higer level.

Note: This is best practice to use scope for actions or activites and then handle the fault. You can use one scope or multiple scopes for each business invokes.

Step2: In the body deault scope:

When there is a fault in the body scope or throwing a new fault from body scope, the fault  moves to the default scope level and here we can handle error depending upon our business logic. Like send mail notification, logs the error to a db or logs to S3 or create an incident to Service now etc. So that support guys can get notified and the error can be resolved with ease.

In our project, we did the following:

  • Create and update notify parameters
  • Send all the log and incident details to another sub Integration OIC-Notification.
  • Rethorw fault to Global fault.

Step3: sub integration OIC_Notification sends email, log the details and create incident to servicr now.

For outbound flow we only perform following:

  1. Log the error details to S3.
  2. Create incident to ask now application.

For outbound flow, we have kept global fault as nothing.

Note: you can also use global fault scope and design more things as per your business requirements.

No comments:

Post a Comment

Featured Post

11g to 12c OSB projects migration points

1. Export 11g OSB code and import in 12c Jdeveloper. Steps to import OSB project in Jdeveloper:   File⇾Import⇾Service Bus Resources⇾ Se...