Integration Cloud Service (ICS) is a PaaS cloud offering from Oracle that provides capabilities of integrating applications both on-cloud and on-premise (on-prem). ICS provides rich set of connectors/adapters to connect to Oracle's SaaS and on-prem applications and many third-party cloud and on-prem applications. One such connector that ICS provides is the Oracle ERP Cloud Adapter which is used to connect to Oracle Cloud ERP. Oracle Cloud ERP (ERP) offers the most complete and integrated Enterprise Resource Management solutions for operations, GRC, and performance management.
ERP exposes web-services (mainly SOAP) to integrate with ERP. This blog shows how to use ICS to integrate with ERP. One may wonder if ERP exposed websevices then what's the big deal in integrating with it? Why do we need this blog in the first place? While integration with ERP query services can be done in a simple manner, there are challenges dealing with bulk-load services. So what are these challenges?
This blog looks into these challenges and provides a solution design to address these challenges using ICS. This blog takes the example of syncing Journal from a third-party application into ERP.
The entire solution is broken in 3 steps - Step1, Step2 and Step3. Each of these steps has an ICS flow associated. The solution design is shown below -
The first step is to generate File Based Data Import (FBDI) file for ERP's consumption.Most of the bulk integration with ERP is through FBDI File. There is nothing fancy about FBDI and it just a fancy name for flat file which looks like this -
The source application's data file may not be in the FBDI format always. In this case the source application data format needs to be converted to FBDI format. This can easily achieved using ICS mapper functionality (XSLT) to transform from source format to the destination format. However, there may be cases where the source generated file may be too large, for example, 500 MB. Anyone who has experience dealing with on-premise integration products like Fusion Middleware (FMW) can tell that reading large file in-memory is not a good approach. This is because there are chances of running out of memory reading the large file in-memory. Since ICS is a PaaS offering, there has been checks on the file sizes that can be read with FTP Adapter. ICS limits the largest file that can be read in-memory using FTP Adapter to maximum of 1 MB. With this being the case, how could one read a 500 MB source file, transform to FBDI format and then upload to ERP? Fortunately, ICS has ability to chunk read the large source file. This feature is called the Stage Read. Stage Read is a map reduce feature within ICS. Prior to making use of Stage Read in the ICS flow, one must make sure to download the file locally to ICS where ICS can read the file in chunks. The reason why the file must be downloaded to ICS prior to chunk reading it is because chunk reading from a FTP Server is very expensive.
With the above context, lets look at how the ICS flow to convert from source format to FBDI format looks like the below -
The flow has been marked with logical numbers to explain the different steps involved to generate the FBDI format.
The second step is to consume the FBDI file generated in Step 1 and upload the file to ERP. ERP exposes webservices (mainly SOAP) to upload data to ERP. While these services can be made use directly using a SOAP call, there are some complexities involved in terms of dealing with binary file like zip file to upload data and receive data. Retrieving and uploading the zip files using a simple SOAP call maybe little cumbersome. Fortunately, ICS has an ERP Adapter that abstracts several of these complexities. So, for the journal upload in this case, the ERP Adapter is used.
Configuring the ERP Adapter is very easy. To configure the ERP Adapter the serviceCatalog wsdl is needed. The service catalog wsdl is https://<ERP Host Name>/fndAppCoreServices/ServiceCatalogService?wsdl. The serviceCatalog WSDL is a catalog of all services exposed by the ERP. The catalog exposes services from all the module such as finance, project management, order management, inventory management and so on.
The ICS flow to upload the journal to ERP is shown below.
In this ICS flow a callback from ERP is received. It is possible to receive a callback on SUCCESS, ERROR or BOTH. See configuration below.
The ERP Callback has 2 parts.
{
"JOBS":[ { "JOBNAME":"Load Interface File for Import", "JOBPATH":"/oracle/apps/ess/financials/commonModules/shared/common/interfaceLoader", "DOCUMENTNAME":"JTest1.zip", "REQUESTID":"603547", "STATUS":"SUCCEEDED", "CHILD":[ { "JOBNAME":"Load File to Interface", "JOBPATH":"/oracle/apps/ess/financials/commonModules/shared/common/interfaceLoader", "REQUESTID":"603549", "STATUS":"SUCCEEDED" }, { "JOBNAME":"Transfer File", "JOBPATH":"/oracle/apps/ess/financials/commonModules/shared/common/interfaceLoader", "REQUESTID":"603548", "STATUS":"SUCCEEDED" } ] }, { "JOBNAME":"Import Journals", "JOBPATH":"/oracle/apps/ess/financials/generalLedger/programs/common", "REQUESTID":"603550", "STATUS":"ERROR" } ], "SUMMARYSTATUS":"ERROR" } |
With the help of ICS orchestration pattern, complex integration scenarios can be designed. ICS provided ERP Adapter helps to integrate with Oracle ERP Cloud. The ERP Adapter hides a lot of complexities integrating with ERP especially dealing with batch integration using FBDI. ICS also provides Stage Read feature which is a map reduce feature in ICS. This feature is very critical when large files are to be read by ICS. With rich set of connectors and features, ICS is a service of choice when it comes to integrating between SaaS and SaaS or On-prem and SaaS. ICS offers the depth of integration capabilities dealing with Oracle SaaS and this blog has showed this for Oracle ERP Cloud.