Configuring the replication of Cost Centers from SAP ERP to SuccessFactors Employee Central Using SAP Cloud Platform Integration
Hello SAP community,
We would like to share one working sample of the replication of Cost Centers from SAP ERP to SuccessFactors Employee Central Using SAP Cloud Platform Integration as the Middleware.
The ERP used was one S/4HANA OnPremise running ODTFINCC 600 SP11 and SAP_BASIS 753 SP 2.
Help our customers and partners completing the configuration in your local environments/projects.
The handbook used during this set up is:
- Replicating Cost Centers from SAP ERP to Employee Central Using SAP Cloud Platform Integration as the Middleware – (1H 2020 – 2020-04-09)
- the handbook link includes the “/latest” in the URL, so in future, this handbook might have some different procedures or minor changes not documented in this blog post.
All the images and data used here was taken from SuccessFactors SalesDemo instance, local CPI tenant, local ERP OnPremise installation, so we are using dummy data.
In the handbook, we have the technical scenario and landscape in the picture below:
In the sample of this blog posting, we did not implemented the ERP to ECP COSMAS IDOC/RFC replication. In this sample we implemented just the ERP > CPI (SAP Cloud Platform Integration) > SAP SuccessFactors part of the flow, according the image below:
We are going to cover the implementation in steps 1 to 7.
1) Setting up the middleware SAP Cloud Platform Integration (CPI).
Package name = ERP to SAP SuccessFactors Employee Central Cost Center
Artifact names =
- Replicate Cost Centers from SAP ERP or SAP S4HANA to SAP SuccessFactors Employee Central
- Map Cost Center Language Keys from SAP ERP or SAP S/4HANA to Language Keys from SAP SuccessFactors Employee Central
Find below the configuration done.
The “Sender” tab was not modified. We kept the standard values.
In the “Receiver” tab the Address was selected (according the Datacenter of our SF instance, in our case it is hosted in the DC4 salesdemo).
The Timeout (in min) was changed the value to 10 to avoid any timeout. This could help when the servers are more slowly.
Under “More” tab, we changed the ENABLE_PAYLOAD_LOGGING = true during the setup, later (production) you can keep this as false.
We also configured the ERP_DEFAULT_LANGUAGE = E (to use English).
I would recommend you to read all the parameters description in the chapter 5.3.4 of the implementation handbook.
After this configuration above, the artifact was deployed.
The endpoint URL generated was https://d400001-iflmap.hcisbt.br1.hana.ondemand.com/cxf/ERP_to_EC_CostCenter_Replication_IDoc
Please notice that this endpoint above works in our test tenant. You might have one different URL in yours.
We also did the language mapping for 3 languages, according below:
Doing these configurations above we prepared the CPI artifact to receive translations of english, portuguese and spanish.
2) Starting with the ERP side.
Transaction = WE30 > ODTF_CCTR01 > display
Double click in the E101ODTF_S_COST_CENTER_NAME > Segment editor
In the below screen you can see the lengths of the fields. This is the standard configuration and the same length should be kept in the SF side (Admin center > Configure Object Definitions > Cost Center > config is reflected in the FOCostCenter OData entity).
This part is not required to change, you can keep the standard values, but in case your company need to change length or add fields, please return back here.
3) Transaction SM59 > connection type G > create:
Port is 443 to use HTTPS protocol.
Path Prefix is the address defined the “Sender” tab configuration of your CPI.
Under Logon & Security, we typed the CPI username and password and we also selected the SSL Certificate Active and SSL Client (Standard).
We did not add the CPI certificates under STRUST this time, because this was already done inside the BIB implementation (step 3 of this other blog posting).
Important. In this blog posting, we did not enable the Change pointers, because we will manually sync Cost centers. In one customer real life scenario, please enable the Change pointers according the chapter 6.2 Enabling Change Pointers of the handbook.
4) Transaction SALE > Basic Settings > Logical Systems > Define Logical Systems > created the S4ACLNT200 and CPI_BR Logical Systems. These names are the suggestions from our test system. In your side, you can create something according your landscape like PP1CLNT700 and CPI_US, etc.
Returning back in the transaction above, now let’s configure the > Modelling and Implementing Business Processes > Maintain Distribution Model and Distribute Views (last option in the bellow screen).
Switch to the edit mode > Create Model view with the Technical name EC_CC_REPL.
Add Message Type ODTF_CCTR with the Model view EC_CC_REPL created earlier and the Receiver CPI_BR created earlier.
5) Transaction WE21 > XML HTTP > Create > used the values below:
RFC destination created earlier (named S4A_CPI_COST_CENTER in the step 3)
6) Transaction WE20 > Partner Type LS > Create:
Used the Type US, Agent my user id, Lang. EN and also the Partner No. the middleware logical system created earlier in step 4 (CPI_BR) and saved.
Clicked in the plus button of the Outbound tab.
Included the message Type ODTF-CCTR
Receiver Port CC_CPI
Basic Type ODFT_CCTR01
Completed the settings like above and Saved.
7) Now let’s test.
Transaction SE38 > run the report named ODTF_REPL_CC.
For this sample purpose, we selected just one cost center (code “REM”) and we flagged some options according below.
Logical System (value previously created)
Receiver Partner No. (value previously created)
After you execute, you can see the ID of the IDOC created.
In this sample above the IDOC was ID = 000000…0000003 (lots of zeros and 3 in the end).
This internal system is not sending IDOCs automatically because like I explained, the change pointers were not configured.
To push this to CPI and SuccessFactors, please use the transaction:
Access the transaction BD87 > type the IDOC ID and run.
Select the line and click in Process:
This will trigger the ERP IDOC (RFC) > CPI (middleware) > SF OData upsert (update the Admin center > Manage Data > Position).
We can see under the CPI message processing the completed log.
In the SF side, the call arrived with OData API upsert in the entity FOCostCenter. You can see that under Admin center > OData API Audit logs.
We can see the record created in the Admin center > Manage Data > Cost Center > search for the cost center REM.
Please also check out some relevant KBAs for common issues.
2680792 – ERP to EC Cost Center Replication Failure – Inbound processing in endpoint at /ERP_to_EC_CostCenter_Replication_IDoc failed with message “Fault:Unexpected EOF in prolog
2817538 – IDoc not reaching CPI for Cost Center Replication – SuccessFactors Integrations
2743884 – Package integration: ERP to SAP SuccessFactors Employee Central Cost Center Customization options
2747830 – ERP to SuccessFactors Cost Center Object Replication using HCI/CPI Tool with Error Message: The XML is malformed at node <XXXX>
Using the instructions of this blog posting, you will be able to set up the SAP Cloud Platform Integration (CPI) packages, the ERP RFCs and other configurations required and later validate the replication of Cost Centers in your SuccessFactors instance.
I hope this blog post can help your team doing the same implementation faster.
If you find this blog post helpful – please press like button 🙂
Best Regards from Brazil,