You are on page 1of 20

5/14/2018 Integrating with ERP Cloud using ICS

Cloud Fusion Middleware Fusion Applications About Log in

Integrating with ERP Cloud using ICS

March 29, 2017 by Abhay Kumar 18 Comments

Integration Cloud Service (ICS) is a PaaS cloud offering from Oracle that provides capabilities of integrating applicatio
cloud and on-premise (on-prem). ICS provides rich set of connectors/adapters to connect to Oracle’s SaaS and on-pre
applications and many third-party cloud and on-prem applications. One such connector that ICS provides is the Oracle
Cloud Adapter which is used to connect to Oracle Cloud ERP. Oracle Cloud ERP (ERP) offers the most complete and
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 ER
may wonder if ERP exposed websevices then what’s the big deal in integrating with it? Why do we need this blog in th
place? While integration with ERP query services can be done in a simple manner, there are challenges dealing with b
services. So what are these challenges?
1. How can a very large file say 500 MB or more be read, transformed and uploaded to ERP?
2. How to handle zip files that ERP expects as input?
3. How to handle the callback response from ERP?

This blog looks into these challenges and provides a solution design to address these challenges using ICS. This blog
example of syncing Journal from a third-party application into ERP.

Journal Import into ERP using ICS

Solution Design
The entire solution is broken in 3 steps – Step1, Step2 and Step3. Each of these steps has an ICS flow associated. Th
design is shown below – 1/20
5/14/2018 Integrating with ERP Cloud using ICS

Step 1: Generate FBDI File

The first step is to generate File Based Data Import (FBDI) file for ERP’s consumption.Most of the bulk integration with
through FBDI File. There is nothing fancy about FBDI and it just a fancy name for flat file which looks like this – 2/20
5/14/2018 Integrating with ERP Cloud using ICS

The source application’s data file may not be in the FBDI format always. In this case the source application data forma
be converted to FBDI format. This can easily achieved using ICS mapper functionality (XSLT) to transform from sourc
the destination format. However, there may be cases where the source generated file may be too large, for example, 5
Anyone who has experience dealing with on-premise integration products like Fusion Middleware (FMW) can tell that
large file in-memory is not a good approach. This is because there are chances of running out of memory reading the
memory. Since ICS is a PaaS offering, there has been checks on the file sizes that can be read with FTP Adapter. ICS
largest file that can be read in-memory using FTP Adapter to maximum of 1 MB. With this being the case, how could o
500 MB source file, transform to FBDI format and then upload to ERP? Fortunately, ICS has ability to chunk read the
source file. This feature is called the Stage Read. Stage Read is a map reduce feature within ICS. Prior to making use
Read in the ICS flow, one must make sure to download the file locally to ICS where ICS can read the file in chunks. Th
why the file must be downloaded to ICS prior to chunk reading it is because chunk reading from a FTP Server is very

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.

1| Read Trigger File

This is scheduled ICS integration that gets triggered based on a scheduled configured. The first step is to read the tr
that will be put in FTP location. The trigger file is zero byte file having the same name as the source data file. The tri
provides the name of the source data file to be read by the downstream activities in this ICS flow. A trigger file is use
sure the source application can write the data file completely before ICS can pick up the data file to read. FTP Adapt
does support the minimum age property but sometimes the source application may be trying to append to data file if
many records. So using minimum age may not work in such scenarios and hence the need of having a trigger file.

2| Download Source Data File

The next step is to download the source data file into ICS. As explained earlier the reason behind downloading the s
file is because the chunking of the file on FTP Server is expensive operation. The ICS flow was written with the requ
the source data file is a compressed file (.zip file) that may contain one or more source data format files. 3/20
5/14/2018 Integrating with ERP Cloud using ICS

3| Chunk Read and Transform to FBDI

In this step we make use of the Stage Read feature in ICS to chunk read file. Then every chunk is transformed from
format to FBDI format and then output FBDI file is written. The outer for-loop ensures that if there multiple files as a
source zip file is read and transformed to FBDI formatted file.

4| List File
List file is needed for ICS to determine how many FBDI files are written out.

5| Generate Property File and Write zip file

ICS uses ERP Adapter to upload FBDI file to ERP. Although the ERP Adapter makes uses of ERP provided webserv
internally, it obfuscates many complexities involved in the raw ERP webservices. The ERP Adapter expects a zip file
FBDI file and Property file to upload to ERP. The property file is a manifest file that will contain information on Jobna
Parameterlist that ERP needs to upload the FBDI file into ERP.

6| Archive Source File

The source file is archived for the future on a FTP location for re-submission purposes if necessary in the future.

7| Archive Trigger File

The trigger file is archived for the future on a FTP location for re-submission purposes if necessary in the future.

Step 2: Upload to ERP

The second step is to consume the FBDI file generated in Step 1 and upload the file to ERP. ERP exposes webservice
SOAP) to upload data to ERP. While these services can be made use directly using a SOAP call, there are some com
involved in terms of dealing with binary file like zip file to upload data and receive data. Retrieving and uploading the z
using a simple SOAP call maybe little cumbersome. Fortunately, ICS has an ERP Adapter that abstracts several of the
complexities. So, for the journal upload in this case, the ERP Adapter is used. 4/20
5/14/2018 Integrating with ERP Cloud using ICS

Configuring ERP Adapter Connection

Configuring the ERP Adapter is very easy. To configure the ERP Adapter the serviceCatalog wsdl is needed. The serv
wsdl is https://<ERP Host Name>/fndAppCoreServices/ServiceCatalogService?wsdl. The serviceCatalog WSDL is a c
all services exposed by the ERP. The catalog exposes services from all the module such as finance, project managem
management, inventory management and so on.

The ICS flow to upload the journal to ERP is shown below. 5/20
5/14/2018 Integrating with ERP Cloud using ICS

1| Read FBDI Zip File

The flow is triggered by a scheduler. When the scheduler kicks off the process, the first activity reads the FBDI zip fil
the previous flow. Since the file is a zip file there is no schema needed to read the file.

2| Invoke ERP using ERP Adapter

To configure the ERP Adapter at Design time follow the steps below – 6/20
5/14/2018 Integrating with ERP Cloud using ICS 7/20
5/14/2018 Integrating with ERP Cloud using ICS

The ERP Adapter takes the zip file containing the FBDI file and Property File as input. Since the read activity has rea
just the file reference and name needs to be passed to the ERP Adapter as shown below.

Step 3: Receive Callback From ERP

In this ICS flow a callback from ERP is received. It is possible to receive a callback on SUCCESS, ERROR or BOTH.
configuration below.

Configuring ERP Adapter for Callback 8/20
5/14/2018 Integrating with ERP Cloud using ICS 9/20
5/14/2018 Integrating with ERP Cloud using ICS

1| Receive Callback from ERP

The flow is triggered by when ERP asynchronously calls back ICS. The callback was configured when the ERP adap
configured to invoke (see the screen shot in STEP 2 under section 2| Invoke ERP using ERP Adapter).

2| Write Result File

The callback from ERP contains a zip file that has all the results of the jobs that ran on the ERP. This can be written

Data Received From ERP

The ERP Callback has 2 parts.
1. JSON Message
The JSON message contains all the jobs that ran in ERP and its statues. The JSON looks something like this –
“JOBNAME”:“Load Interface File for Import”,
5/14/2018 Integrating with ERP Cloud using ICS

“JOBNAME”:“Load File to Interface”,
“JOBNAME”:“Transfer File”,
“JOBNAME”:“Import Journals”,

2. ZIP File
This zip file sent from the ERP contains the results of all the jobs that ran on ERP. The content of the zip file is expla
picture below.

With the help of ICS orchestration pattern, complex integration scenarios can be designed. ICS provided ERP Adapte
integrate with Oracle ERP Cloud. The ERP Adapter hides a lot of complexities integrating with ERP especially dealing
integration using FBDI. ICS also provides Stage Read feature which is a map reduce feature in ICS. This feature is ve
when large files are to be read by ICS. With rich set of connectors and features, ICS is a service of choice when it com
integrating between SaaS and SaaS or On-prem and SaaS. ICS offers the depth of integration capabilities dealing wit
SaaS and this blog has showed this for Oracle ERP Cloud.
All site content is the property of Oracle Corp. Redistribution not allowed without written permission

Like 3 Tweet Share 8

filed under: cloud, enterprise resource planning, integration cloud service, paas, uncategorized tagged with: erp a
cloud integration, ics, map reduce, map reduce ics, stage read


Madhu Iyengar says:

March 5, 2018 at 7:11 PM 11/20
5/14/2018 Integrating with ERP Cloud using ICS

Hi Abhay,

Excellent article! thanks for this. I have a question. Is it it possible to have more than one entry in the manifest
file? the use case is to call multiple import jobs. I tried it but looks like it is invoking only the first job. Could you plea


Log in to Reply

Abhay Kumar says:

March 8, 2018 at 11:40 AM
Madhu, it is not possible to have more than 1 entry the manifest file. If there are multiple import jobs it has to be
done through multiple calls. HTH …

Log in to Reply

Sidhwartha says:
January 9, 2018 at 7:12 AM
Hi Abhay,
This is very helpful document…
— Sid

Log in to Reply

Paula Yang says:

November 9, 2017 at 8:00 PM

I have a question,

For “1| Read Trigger File”

Q1: I tried it, if the trigger file is not in FTP, the integration will be failed. Is it what you expected?
Q2: What’s your schedule? If I set the schedule as every 10 mins, will it be too frequent and impact ICS instance’s

Thank you!

Paula 12/20
5/14/2018 Integrating with ERP Cloud using ICS

Log in to Reply

Abhay Kumar says:

November 16, 2017 at 11:53 AM
Q1: The behaviour of this has changed in release of ICS. I think you will see it failed in the latest release of
ICS. What I recommend is to not use the trigger file but you can use minage to control when file is read after the
has completely finished writing the file.

Q2: 10 mins is the min schedule that you can set from the UI drop down. However you can use iCal express to s
lower value like 3mins.3mins is the min as it gets. The schedule depends on your requirement. 10 mins will not b
frequent and will not affect the ICS performance.

Log in to Reply

Binay says:
October 17, 2017 at 1:28 PM
Hi Abhay,
What happens to the files staged in ICS?
How do you delete those files from ICS?


Log in to Reply

Abhay Kumar says:

October 17, 2017 at 7:08 PM
ICS takes care of deleting the staged files after the flow is completed. This is totally black box for the

Log in to Reply

Binay says:
November 2, 2017 at 5:46 PM
Hi Abhay,
Thanks for your response.
My requirement is to add a data validation using PL/SQL and as a part of that i tried inserting records in a DB
DB adapter and looks like it inserts record by record.
It took 31 mins to insert 1700 records
is this the way DB adapter insert will work or am i missing any step here?

I need to load more than 50k records

Log in to Reply 13/20
5/14/2018 Integrating with ERP Cloud using ICS

Jie Lian says:

May 21, 2017 at 3:34 AM
Very nice article. I learned a lot. At the same time, I have 2 small questions about callback part.

1. We defined the callback in STEP 2. The integration flow identifier is “JOURN_3_CALLB_FUSIO_TO_ICS”. I supp
can obtain this integration after step 2. But I tried it out in ICS, it seems that what I understand is wrong. So it mean
need to create a new integration with identifier “JOURN_3_CALLB_FUSIO_TO_ICS” in STEP 3, right?

2. You mentioned “The callback ICS must exist in the same ICS instance”. I don’t quite understand. Do you mean w
to consume 3 ICS flows in a same java class client instance?

Thank you so much,


Log in to Reply

Abhay Kumar says:

June 2, 2017 at 8:16 AM
1. Yes you will need to create ICS integration flow 3 to get its identifier to be used in ICS integration flow 2.

2. I don’t understand the question. But all the ICS flows needs to exist on the same ICS POD if this helps.

Log in to Reply

murfy92 says:
August 15, 2017 at 6:15 AM
I have tried to create a callback integration but no instances are being triggered. Is there any additional
config (not mentioned on article) that needs to be carried out for the callback to work?

Log in to Reply

Abhay Kumar says:

August 15, 2017 at 6:40 AM
Have you followed the prereqs documented at

Log in to Reply

Clyde says:
May 9, 2017 at 8:43 PM 14/20
5/14/2018 Integrating with ERP Cloud using ICS

Where can someone get more details around the properties manifest file? Sample version? I searched
everywhere and can’t find any real detail around what exactly needs to go into the file and its format.

Log in to Reply

Abhay Kumar says:

June 2, 2017 at 8:14 AM
Please refer to Doc note (On
oracle support). Follow Appendix 12.

Log in to Reply

Rakesh Soni says:

April 7, 2017 at 5:31 AM

Nice article. Can you provide list of business operations provided by ERP Cloud Adapter or any link for the docume
Please share your code for my understanding.

Rakesh Soni

Log in to Reply says:
April 10, 2017 at 8:31 PM
You can get the list of business operations by running through ERP Adapter.

Log in to Reply

Vikas Manchanda says:

April 4, 2017 at 3:56 PM
Amazing article as always Abhay. It’s detailed and well explained. I have always been a fan of yours and will
always be.

Thanks for this article again.

Vikas Manchanda

Log in to Reply 15/20
5/14/2018 Integrating with ERP Cloud using ICS says:
April 10, 2017 at 8:32 PM
Thanks Vikas. I am glad you liked it.

Log in to Reply

Add Your Comment

You must be logged in to post a comment.

Search this website … Search

Search Additional Oracle Sites


Cloud (327)

Recent Posts
GoldenGate Cloud Service (GGCS): How
to run SSH Socks Proxy Server for
Oracle GoldenGate (OGG) 16/20
5/14/2018 Integrating with ERP Cloud using ICS

Oracle Data Integrator Best Practices:

Performing Incremental Updates in the
Oracle Autonomous Data Warehouse

Restrict access to IDCS UI using Sign-On


Connecting ODICS and DIPC Studios to

the Autonomous Data Warehouse Cloud

Resources for learning RDF Semantic

Graph (Part 1)

BI Cloud Connector – Deletion of Data

Extract Files on UCM

Oracle Data Integration Platform Cloud

(DIPC): Configure VPN as a Service
(VPNaaS) for On-Premises Connectivity

Select Month

Social Facebook Arch Beat Twitter OTN Group FMW Group

Copyright Privacy at Terms of About the A-
Information Oracle use Team

All content and s/w code on this site are offered without any warranty, or promise of operational quality or functionality. 17/20
5/14/2018 Integrating with ERP Cloud using ICS 18/20
5/14/2018 Integrating with ERP Cloud using ICS 19/20
5/14/2018 Integrating with ERP Cloud using ICS 20/20