Custom callback design changed to overcome the BI report execution time out issue as below.
- Main flow (where import and child process runs) call to callback integration
- Archive the success file
- Execute the execition accounting report based on child request id for support help.
- Call ESS job which internally calls the BI report to execute the SQL query to get the callback report
- Call a Sub Integration like MoveCTRLReport and feed the ESS job process id
- Here, check the ESS job status using getESSJobStatus(Interesting fact is that we are looping max 55 times to check if the ESS process completes )
- If ESS process gets completed,
- Download the control report using downloadESSJobExecutionDetails operation
- Write the control report in stage
- Unzip the report
- Read the text report
- Move the report to FTP location
Step1: We have 2 integrations,
- Main Integration where it will import the file and complete the child process if any.
- The main flow then call the custom callback integration with below request and response:
"base64FileReference" : "ref",
Step2: Take a Bodyscope and take a Switch block and check if importRequestStatus ="SUCCEEDED" and again check childRequestStatus ="SUCCEEDED"
Step3: Move success file to archive folder invoking another sub integration which handles the file movement, move from source folder to archive folder and delete in the source folder.
Step4: If childRequestId !="" then call ERP cloud adapter
And map the all parameters to run the accounting execution report.
Step5: call ESS job. The job calls the BI report which actually runs a SQL model to generate the callback control report.
The ESS job:
Step6: check if the ESS process completes and download the control report and move the report to FTP location
Call the downloadESSJobExecutionDetails