Sailing Through an EC – ECP Point-to-Point Replication
It has been more than 6 months since the Client went live with SuccessFactors Full Cloud (this included EC, ECP and a few Talent modules). The main highlight of the project was the much hyped EC – ECP Point-to-Point Replication i.e. integration between EC and ECP sans any middleware – typically Dell Boomi or SAP HCI (now known as SAP CPI – Cloud Platform Integration). And to top it off – this was the first if its kind in Australia! With any new and shiny (and untested) functionality there were lots of challenges to get it up and running; and at the end of the day some key takeaways that we could leverage at other implementations.
This document is intended to serve as a Consultant’s supplementary guide for a number of activities pertaining to the Employee Central to Employee Central Payroll Master Data Replication. As such it calls out some of the critical technical activities and complements the official Employee Central Payroll Using Point-to-Point Replication document by SAP.
Whilst it does not address each and every nuance of the integration for the replication, it however hopes to at least address some of the more common activities / concerns that an Integration Architect / Lead may encounter.
- Employee and employment-related data is maintained in Employee Central (EC)
- Employee enters their contact data, biographical data, and payment information in EC
- HR enters payroll-related information, like pay group and compensation information, like salary and pay rate, in EC
- HR typically maintains additional tax in EC and is also saved in ECP
- Employee Data (initial load and then changes) is sent to Employee Central Payroll (ECP) on a scheduled basis (every 3-5 mins)
- For every payroll period, the payroll admin / specialist will prepare and execute all relevant payroll runs. To do this, the payroll admin / specialist will access ECP
- The Employee accesses their payslips and pay statement in EC, which is directly rendered from ECP
- The payroll information is then sent to Financials. The posting into accounting can be done automatically by using corresponding jobs. This requires SAP ECC to be integrated to ECP using standard interface technology (ALE)
Payroll Configuration Picklists
Import the Payroll Configuration Picklists (of type Payroll Configuration) from the Success Store before configuring the Country specific Default Portlet
Activate Business Functions
Go to transaction SFW5 and switch on the Business Functions
HCM_SFEC_MDEC2HR (Employee Master Data Replication)
HCM_SFEC_TDEC2HR (Time Off Replication)
Number Range for Personnel Numbers
Go to transaction SPRO
Navigate to the node Personnel Management >> Personnel Administration >> Basic Settings >> Maintain number range intervals for personnel numbers
Ensure that the Number Range Intervals are the same as the intervals defined in Employee Central, and that this Number Range Number is flagged to use the External number range.
Execute transaction SOAMANAGER (make sure that Service APPL_SOAP_MANAGEMENT is Active)
Click on Technical Administration, then SAP Client Settings
Click Append Row
Enter the below values –
Reverse proxy name – REVERSE_PROXY_ALL
Incoming http header host name – *
Incoming ICM port – *
Substitute host name – this is provided by SAP for the particular ECP system (typically this would be myXXXXXXX.mail.payroll.ondemand.com, where myXXXXXXX is the same number as in the customer system URL)
Substitute https port – 443
Meta data protocol substitution – https
Endpoint protocol substitution – https
Status – active (Reverse proxy is active)
Save the Reverse Proxy Settings
Security roles need to be created for the below ECP user groups –
- Standard user
- HR Admin
- Payroll Admin
An API User (User Type – System and User group – CUSTOMER) is required only if any other web service besides the standard replication web services is invoked. It needs the following role assigned –
The Batch User (User Type – System and User group – CUSTOMER) needs the following roles assigned –
- SAP_HR_PA_EC_EE_BNDL_REPL_V2 (required for Master Data Replication)
- SAP_HR_TIM_EC_PTP_REPL (required for Time Off replication)
- Other permissions as required
Tips & Tricks
Replicating Individual Employees
Here are the steps to manually run the EC – ECP replication for 1 Employee at a time
Switch off the replication background job
Set an external breakpoint in the below line of code in Class CL_HRSFEC_PTP_EE_REPLICATION Method BUILD_PARAM_CLAUSE
CONCATENATE ‘ <param>’ ‘ <name>maxRows</name>’ ‘ <value>200</value>’ ‘ </param>’ INTO rv_parameter_clause RESPECTING BLANKS.
Run the replication program RP_HRSFEC_PTP_EE_REPLICATION in online mode
The debugger will stop at the above line of code
Change the value of packet size 200 to 1 and continue
This will execute the replication for all the employees individually
Debugging Replication Web Service
Execute transaction SRTUTIL
Create a Trace for the User who will be running the debugger for the replication
Enter EmployeeMasterDataBundleRepli1 as the Service Definition
Click Save Configuration
Click Payload Trace
Go to (any of) the trace
Highlight on the Type = Call, then click on View Source Code.
This will open the ABAP editor in a new session
Set an external breakpoint.
When you run the replication program in online mode this will retrigger the call to the web service, and the debugger will be initiated.
Create a second external breakpoint in the Implementing Class of web service EmployeeMasterDataBundleReplicationRequest_In – Class CL_PAD_SFEC_EE_MDR_BNDL_REQ_IN Method II_PAD_SFEC_EE_MDR_BNDL_REQ_IN~EMPLOYEE_MASTER_DATA_BUNDLE_RE
From here you can navigate to Class CL_HRSFEC_EE_MDR_MAIN Method PROCESS_EMPLOYEE to the Infotype detail
The call stack is as below –
Class CL_PAD_SFEC_EE_MDR_BNDL_REQ_IN Method _EXECUTE_RFC
Function Module PROCESS_EE_MDR_INBOUND_RFC
Class CL_HRSFEC_EE_MDR_BNDL_PROC Method PROCESS
Class CL_HRSFEC_EE_MDR_BNDL_PROC Method _PROCESS
Class CL_HRSFEC_EE_MDR_MAIN Method EXECUTE
Class CL_HRSFEC_EE_MDR_MAIN Method PROCESS
Class CL_HRSFEC_EE_MDR_MAIN Method PROCESS_EMPLOYEE
Rerun Delta Replication
To rerun replication from a given point of time modify the Last Modified Timestamp held in the system
Go to transaction SM30
Enter Table/View HRSFEC_PTP_LMOD and click Maintain
Change the Last Modified Timestamp for the Config ID relevant to the ECP system and instance and Save
Make sure that the Last Modified Timestamp is in UTC format (Zulu time)
Rerun the replication
Once the replication has run the Last Modified Timestamp will be updated to the new runtime
Section 220.127.116.11 Adapting the HR Role or Payroll Admin role of the EC – ECP Point-to-Point Replication Implementation Guide talks about enabling the Payment Information checkbox in User Permissions >> Employee Data under HR Information.
Please note that Payment Information sits under Miscellaneous Permission in User Permissions as per the diagram below –
Go to transaction SICF, activate the following nodes
|HRPAO_PAOM_MASTERDATA||/default_host/sap/bc/webdynpro/sap/||Country-specific master data|
|PAYSLIP||/default_host/sap/EC/||Mashup – Payslip|
|PAYMNT_SUM_AU||/default_host/sap/EC/||Mashup – Payment Summary|
|HRESS_A_PAYINFO||/default_host/sap/bc/webdynpro/sap/||Mashup – Superannuation|
|/default_host/sap/bc/ui5_ui5/||Payroll Control Center Mashups|
|/default_host/sap/opu/odata/sap/||Payroll OData APIs|
|SEC_DIAG_TOOL||/default_host/sap/bc/webdynpro/sap/||SAML2 Diagnostic Tool|
Common Replication Errors
This section list some of the more common errors encountered in the EC – ECP Replication. As you can see they are ALL data related. I cannot even begin to stress how vital it is that you have a strong governance around Master Data Management so that you don’t suffer the same pitfalls! Remember this mantra – time spent in data cleansing is inversely proportional to errors faced in integration (not just limited to EC – ECP Replication). Higher data quality leads to minimal integration errors.
- Bank AU XXX-XXX does not exist
- Enter a quantity
- Enter amount
- Please enter standard value or percent for second bank
- Fill field Street and House No.” of infotype 0006 for time period 01.05.2017 – 31.12.9999.”
- Postal code XXXXXXX should contain numbers only
- Postal code xxx should contain numbers only
- Max length 10 of target field exceeded. Source field address_information address2
- No value mapping found for value XXXXXX of EC data type REGION
- Country code XXX is not valid
Cost Center / Profit Center errors
- Entry 1000 XXXXXXXXXX does not exist in CSKS (check entry)
- Profit center 1000/XXXXX is locked for the date 01.05.2017
- Max length 2 of target field exceeded. Source field job_information event_reason
- Please enter a frequency for payroll area 99 on 01.06.2013.
- IndVal of wage type 0200: No entry in table T510 for key ’13DLDL3DELOITTE010200′ on 11.05.2017
- Target Infotype not configured for wage type(s) XXXX, of country XX
The new Employee Central Payroll system is a Cloud system and is not a continuation of the SAP ERP on-premise system. The system is initially set up as an empty system with the highest version of the software components needed to run payroll. As such it has the below limitations –
- If you are an existing on-premise customer you will need to bring in Customizing by transport or ask SAP Cloud Operations to do so all the configuration from your on-premise system before you commence data migration.
- In case you have implemented any add-ons, you will need to request their installation as well.
- This being a Cloud system SAP does not permit any modifications or enhancements to the standard SAP code page, and hence it might not be possible to bring all the custom code you had in your on-premise system into the ECP system. Therefore, you might need to find alternative solutions for issues that have been solved before by modifications or enhancements in the on-premise system. However, it is possible to define new payroll functions and operations, implement Business Add Ins, and create new development objects such as tables or programs in the customer namespace.
- As this system can be on a higher release than your former on-premise system, it might be necessary to fill some database fields that did not exist in the old release in order to ensure that everything runs in the same way.
- You have to accept the data as it is replicated from the Employee Central system. You can’t adjust the replicated data manually in the ECP system.
The API Center is an Integration Architect’s one stop shop for access to all tools integration related as it has got all your OData & SFAPI toolkit on one single page (such as API Data Dictionary, Whitelisting, Audit Log, Metering Details and OAuth Configuration).
Data Replication Monitor
The biggest win lies in the usability of the EC – ECP Replication monitoring tool – the Data Replication Monitor. Earlier versions had the view limited to 4 rows of errors per page; whereas from Q2 2017 onwards the error table can be set to a much larger number (this number is dynamic and is dependent on the number of total errors at any given time; higher the number of errors – the table can be set to display more rows). Another neat little functionality is the addition of the parameter Country in the Selection Criteria (handy for multi-country rollouts).
Hoping to see many more such snazzy improvements from SAP in releases to come!
On a parting note I welcome feedback / correspondences from you all who have taken the bold and brave step to go ahead with what is fast becoming SAP’s defacto Payroll solution in the Cloud; and would encourage a conversation on pros/cons, challenges/heartaches faced by other Customers.
Does the PTP does not integrate OM objects between EC and ECC or the links between PA data and OM objects like person - position data?
Hi Prakash Thottupura
Yes, PTP replicates Position and Org Units, you can refer to the implementation guide HERE.