SAP IBP Data Integration via CPI-DS – How to synchronize data from SAP IBP through webservice
In this blog, you will get an end to end case for how to synchronize data from SAP Integrated Business Planning for Supply Chain solution through webservice.
Let’s assume the following scenario: Planners want to maintenance some additional information in SAP IBP and send these data to SAP ERP Central Component (SAP ECC)’s Z-table. To implement this scenario, we need SAP Cloud Platform Integration for data services (CPI-DS) as a middleware to connect both SAP IBP and SAP ECC. The data flow will be SAP IBP>>CPI-DS>>SAP ECC. Let’s have a look at how to complete this scenario step by step.
1. Webservice Part
Firstly, SAP ECC as a service provider need to publish a web service to receive the data which is sent by SAP IBP through CPI-DS. In this part, I will show you how to deal with these in SAP ECC side. If you have already known these steps, you can skip to CPI-DS part.
1.1 Define a Z-table and create an RFC to receive data.
We need to define a table to store the data sent from SAP IBP, in this example, table is named as ‘ZIBP_DATA_FLITER’. And then, we can use an RFC to receive the data.
1.2 Generate service definition
After the RFC ‘ZIBP_SET_DATA_FILTER’ have been created. We should create an enterprise service and follow the wizard to generate service definition.
After that, you can use T-CODE: SOAMANAGER to publish webservice and get the WSDL URL.
Go to the web service configuration pageSelect your service definition ‘ZIBP_SRV_ECC_DATA_INBOUND’ and follow the wizard to create service.After you have created the service, you can use ‘open binding WSDL generation’ button to open binding page where you can get WSDL URL.You can use web browser to open this WSDL URL, like below. It means the service has been published.
If you find that the web page occurrs 403 error, like this:That means you need to active some services through T-Code: SICF
Firstly, we need to get service path. You can right click and choose properties in the web page.Find the path under /bndg_url, for this example is /sap/bc/srt/rfc/sap/zibp_srv_ecc_data_inbound …Secondly, back to SAP GUI and use T-Code: SICF to find the service and active it.
Now we’ve finished service provide part. Let’s move to CPI-DS part.
2. CPI-DS Part
2.1 Import SAP IBP source table
CPI-DS need to know service consumer’s metadata, so we need to import SAP IBP source table for datastores first.
table name is SOPMD_<master data type ID> and folder name is your planning area ID.
SOPMD means S&OP master data. In this example, planning area ID is ‘INT’ and master data type ID is ‘FILTERCONFIG’, so we need to find table ‘SOPMD_ FILTERCONFIG’ which is under folder ‘INT’.
Now we’ve got the table in CPI-DS, and you can review table data in datastores
2.2 Create a web service datastore
After importing SAP IBP table, we should create a datastore to call the web service which we published.
In new datastores screen, we should choose datastore’s type as ‘SOAP Web Service’ and fill the WSDL URL which we got in step 1.3 in WSDL Path.
We also need to fill credentials info, for this example, it’s a http webservice and authentication with user ID/Password, so we should put the username and password which SAP ECC provided for integration.
For the WSDL Path field, we can also use WSDL file’s address.
If you want to use this way, you need to download the webservice’s WSDL file and upload to Data Service Agent service’s file folder. After that, you can fill the WSDL file address in WSDL Path field.
For this example, Data Service Agent are installed in a windows server, the WSDL file address will like this:
You can use test button to check datastores connection.
From this step, Let’s move to CPI-DS project’s sheet to do the configuration.
Select the projects which you want to input new task and click ‘create task’ button.Follow the wizard to name the task, then select source/target datastores and save it.
Let’s open the task which we’ve just saved. We can check source/target datastores in connections sheet, edit data flows in data flows sheet and we can define some global variable for these data flows in execution properties sheet.
2.4 Create a data flow
After task has been created, we need to define movement and transformation of data from SAP IBP to SAP ECC, so we should create a data flow to handle it.
Use ‘Add target Object’ link to choose target object and create data flow
Firstly, use a Query transform to filter the fields which we need. If you want to define some field value levels’ filter, you can write some codes in filter sheet.Secondly, use an XML Map transform to map the fields between query and web service’s input.
If your web service supports inputting multiple rows of data, you need to define iteration rule for it. Use ‘propose rule’ button to choose the suitable object.Thirdly, use a web service call transform to call SAP ECC’s web service target. In this transform, we can use ‘select function’ button to choose web service input structure.After importing it, don’t forget to map these two structures.You can use ‘configure design time data viewer’ button to check each transform running status.
2.5 Create a process and test data flow
Select the projects which you want to input new process. And then click ‘create process’ button.Fill process name. Deselect the Load to SAP Integrated Business Planning (requires post-processing) box because our target datastores is web service.
Select the data flow which you want to test and drop it in the process pool.