SAP SuccessFactors has become a major pioneer in framework and integration as part of the Cloud HCM applications in the market, since becoming a part of SAP in 2011. The flexibility offered in SAP SuccessFactors APIs makes a good fit for varying architecture complexity. Within SAP SuccessFactors, Employee Central (EC) is the hub for Employee related data, starting from the employees’ personal data, contact information to organizational level information such as position data, compensation data and so on. Whenever a new system is introduced in customer landscape which needs employee data as a starting point, it is best advised to integrate it with SAP SuccessFactors Employee Central (system-of-record for Employee life cycle management).
SAP SuccessFactors comes with state-of-the-art API framework that can provide data via query parameters to the system. At the same time to facilitate and to support end to end process Integration, SAP has the middleware iPaaS, SAP Cloud Platform Integration.
I am pleased to announce the IDP (Implementation Design Principle) for SAP SuccessFactors Employee Data : Integration Complexity and Considerations, in association with Ybrant Partners. This post should be referred to understand the best practices for Employee Data integration with third party system, be it Payroll vendor, Benefits vendor, etc.
Employee data Replication involves 3 basic process functions that are quintessential for integrating a system in a company’s HR Architecture. To ensure that the operation for the new system is smooth the three process that happen are:
- Hiring/ Employee Creation
- Edit/ Employee Data maintenance
- Termination/ End of Employee data maintenance
Employee data Replication Integration is responsible for synchronizing the source and target systems throughout the employee data life cycle.
Any SuccessFactors Employee Master Data integration can be summarized as comprising of 6 steps
- Error Handling
The sample Iflow summarizes these 6 operations as different parts of the Iflow and Subprocesses.
For the process we have used 2 different Execution Trigger: One for Scheduled execution and another for Event Based Trigger. We have configured this in 2 separate main process flows. These will each be triggered using different patterns, one for schedule based and one for event-based trigger.
The next step in the process is to build a dynamic query for getting data from SAP SuccessFactors EC. The process uses a groovy script to get properties and execution parameters and then form a dynamic query on the basis of runtime values. This query is then passed to the SAP SuccessFactors connector, to retrieve the data. This is done via a looping process call to optimise the heap memory used as well as to make the process efficient
Post that the payload/XML message is transformed as per the target system data format (this could involve any number of components, be it Groovy Script, Message Mapping, XSLT Mapping, Data Converters), the resultant output is sent, via the next stage in the process (to target system): Transmission. Transmission includes, encrypting (as per the business need) the data and sending it over to the target system and receiving any response if relevant.
The response in the last stage is recorded and mapped according to the payload from SF and then sent to SF back as the Confirmation stage which marks all the records that have been successfully replicated to Complete, after setting them to pending just after querying the data. The record is also set as error in case the record is not successfully processed.
Exception and Error handling is a best practice recommended by SAP SuccessFactors for custom integration flows which can be handled via sub-exception process/ custom messaging which is understandable by the business users
I would like to conclude the blog by stating, if you are an integration developer who is engaged into a project for building Employee data Integration between SAP SuccessFactors and a 3rd party system, it is recommended to study the following: SAP SuccessFactors Employee Data: Integration Best Practices and Considerations Implementation Design Principle document.
The IDP would not have been possible without support from Ritesh Singhvi and rest of the Ybrant leadership team, invaluable contributions from the integration team lead by Sachin Kumar, working with Sahiti Marepalli & Ashish Tyagi. This was an amazing collaboration between the Ybrant Integration Team to bring out informative illustrations and an amazing final product. Special thanks to Karthick Chandrasekaran and – Gerald Reinhard , who have been the true mind and people in charge of putting this IDP together. Their knowledge of the domain knows no boundaries.