With more customers moving towards a cloud based IT investment strategy for their HCM solution the need to integrate with their existing OnPremise setup and other 3rd party systems is on the rise. Large companies generally move towards a Cloud HCM investment like SuccessFactors in a phased manner. The phased approach is generally in two dimensions the first one being the solution dimension where only certain processes are first moved to the cloud example Performance Management or Compensation Management or Recruiting and later on the other core processes of the company follow. The second dimension is location wise where HCM Business processes in select set of locations are moved first before the rest of the larger regions follow.
What this results in; is the requirement to keep all of the systems in sync and ensure the processes cross interacts in a smooth manner. A few examples of this setup that leads to an integration requirement in SuccessFactors could be the follows:
- Company manages its Core Employee Management in SuccessFactors (Employee Central) whereas payroll is managed using the On-Premise SAP ERP HCM Payroll.
- Company manages its Employee Management in On-Premise using the On-Premise SAP ERP HCM system whereas Performance management is done using the SuccessFactors BizX suite.
- Company does Recruitment using the SuccessFactors BizX suite whereas core employee management is done using On-Premise SAP ERP HCM.
- Company manages its Core Employee Management in SuccessFactors (Employee Central) whereas Travel management and Financials is On-Premise SAP ERP FIN.
- Company manages its Core Employee Management in SuccessFactors (Employee Central) whereas Benefits management is provided by 3rd party vendors.
- Company does Recruitment using the SuccessFactors BizX suite whereas assessment of candidates is done by 3rd party vendors.
SAP HANA Cloud Integration (SAP HCI) is SAP’s strategic integration platform for SAP Cloud Customers. It provides out-of-the-box connectivity across cloud and on-premise solutions. Starting January 2014, you have the possibility to connect to the SuccessFactors Cloud system using the SuccessFactors Application Adapter. For integration developers who have used HCI to connect to SuccessFactors systems earlier what this means is that you no longer have to worry about the Login/Logout or API semantics of SuccessFactors as all of this is now taken care of by the Adapter internally.
Connecting to a SuccessFactors system is now as easy as providing the system credentials, choosing the entity and deciding on the process flow and mapping.
- SAP SCN User id/password using http://scn.sap.com
- SAP HCI Account with User and Roles (Raise a CSS ticket in component XX-INT-CLD-HCI-PI)
- Installation of SAP HANA Cloud Integration Eclipse tooling
- Ensure SaaS Admin has deployed the required SuccessFactors public certificate keys in the system.jks file of the HCI Tenant that you are using to connect to the SuccessFactors system
Capabilities of the SuccessFactors Adapter
- Login, Logout, Session Handling – The Integration developer need not create separate flow steps and manage the Login/Logout calls. Adapter internally handles Login, SessionID management and Logout when connecting to the SuccessFactors system.
- SFQL Modeling support – With the Operations Modeler a step by step guided UI is available using which the Successfactors Query Language (SFQL) can be modeled. The Operations Modeler ensures that the SFQL generated is as per the semantics required by SuccessFactors system. The Modeler ensures the user is presented with the required fields and operations based on the Entity being selected. Example in case of Insert operation the required fields are automatically populated; In case of Query only queryable fields are shown; the Modeler shows up only the supported operations for an Entity, example in case an Entity does not support Upsert this is not shown up in the Modeler. The Operation Modeler ensures that the Integration developer only specifies the correct SFQL.
- Query, Insert, Upsert, Update – The Adapter supports all the standard operations of SFAPI.
- Simple, Compound API support – With the Operations Modeler one can configure both the Simple as well as Compound SuccessFactors API. The Adapter allows calling of both these types of API.
- Simple API’s are SuccessFactors Entities with a flat field structure. Compound API’s are Entities with a nested structure. The Compound API Entity in SuccessFactors is the CompoundEmployee Entity.
- Auto XSD generation for mapping – When SFQL is modeled using the Operations Modeler the XSD (data format in which the messages are exchanged with the SuccessFactors system) is automatically generated which can be used in Message Mapping.
- Scheduler to poll at specified intervals – In case the integration scenario has the requirement of polling the SuccessFactors system at regular intervals the Adaptre can be used as a Sender channel in which case a Scheduler is available. The scheduler allows a lot of easy settings in the UI [Example: Schedule on the 3rd of every month, schedule every day at hh:mm hours, schedule everyday between xx-yy hours, schedule on mm-dd-yyy between xx-yy hours]
- Delta sync to fetch only changed records – There is no need to explicitly create logic to fetch changed records after a previous run. This is specifically required when SuccessFactors is used in polling scenarios and it is required to fetch only changed records in subsequent runs. To enable this Delta Sync option has to be included as a parameter on the query. The Operations Modeler enables inclusion of this parameter in an easy manner.
- Dynamically pass values to SFQL Query – It is possible to dynamically pass values to the SFQL based on the input payload. Example if you have an existing message payload in your message bus and you would like to use this in your SFQL query filter condition you could do so by specifying the XPATH from where the content can be read. The Operations Modeler enables inclusion of this parameter in an easy manner.
- Multiple SFSF calls and merge payload –In case you have a requirement to make separate calls to different Entities in the SuccessFactors system and merge the payload you can use the SuccessFactors Adapter with the Content Enricher step. By using the multi-mapping (Multiple source XSD to one destination XSD) capability you can merge the payload to a single structure if required.
The support for oDATA Entities that was released in SuccessFactors release 1311 and Ad-Hoc Query support is under development in HCI at the time of writing of this document (Jan 2014). You can expect this functionality soon.
Configuring the SuccessFactors Adapter in iFlow
When to use the SuccessFactors Adapter as a Sender Channel and Receiver Channel
Use the SuccessFactors Adapter as a Sender Channel when you would like to poll the SuccessFactors system at regular intervals and Query data from the system. When using the SuccessFactors Adapter as a Sender channel only Query operation is available and you also have an option to configure the schedules during which data has to fetched from the SuccessFactors system.
Use the SuceessFactors Adapter as a Receiver channel when you would like to query or update data into the SuccessFactors system not at a specified intervals but rather on completion of other integration flow steps in the iFlow.
Deploying the Credentials using which you would connect to the SuccessFactors system
- Go to the Node Explorer View and Right Click on the Tenant Management Node to choose ‘Deploy Artifacts’
- Choose Basic Authentication
- Specific the Credential details and SuccessFactors system details and Click on Finish
Creating your first SuccessFactors Integration Project
In this Example you would connect to a SuccessFactors system and fetch the CompoundEmployee details
STEP 1: Create your project
- Go to your Eclipse environment and choose File -> New -> Integration project
- Specify the Project Name and iFLow Name. You can choose a Predefined pattern. In this case since it is simple project we shall choose the Point-to-Point Channel
STEP 2: Select the SuccessFactors Adapter in Sender Channel
- Double Click on the Sender Channel Configuration and Choose the SuccessFactors Adapter
STEP 3: Configure the SucccessFactors Adapter – Connection Tab
- Specify the Credential Name that you deployed in the earlier step using which you would like to connect to the SuccessFactors system
- Specify the Proxy Host and Proxy Host using which it can communicate to the SuccessFactors system. Currently when connecting to SuccessFactors sytem via the HCI Demo landscape you could specify this as proxy and 8080
STEP 4: Configure the SucccessFactors Adapter – Processing Tab
- Call Type currently is defaulted to Synchronous (as of Jan 2014). This will be enhanced with Ad-Hoc option when the capability is made available in the SuccessFactors Adapter.
- Operation Name consists of Entity, Operation and Query/Fields. You can configure this using the Operations Modeler. This should confirm to the format in which the SuccessFactors system can execute the required Entity.
- Entity: The SuccessFactors Entity that you would be using to transfer data. In this Example this is CompoundEmployee
- Operation: Query, Insert, Update or Upsert. In this example this would be Query
- Query/Fields: The SuccessFactors Query Language (SFQL) you would pass to query/insert/update/upsert the required fields along with required conditions. In this Example this can be SELECT person, email_information FROM CompoundEmployee WHERE job_code = ‘ADMIN-1’
The Operations Modeler gives an intuitive UI for user to model the Operations based on the SuccessFactors Query Language (SFQL)
- To open the Operations Modeler Wizard click on the Operations Modeler button in the Processing Tab. Specify the Address, Company ID, Username and Password using which you would like to connect to the system. This can also be a SuccessFactors Test System that you are using to Test your iFlow
- Clicking on Next will connect to the specified SuccessFactors system and list the Entities that you can use. For this Example you can choose the CompoundEmployee Entity
- Select the Operation and Fields of the Entity
When using the SuccessFactors Adapter as a Sender Channel as in this example only the Query option is available. This is because you would be using the SuccessFactors Adpater in the Sender Channel when you would like to query data at a specified time or regular intervals. In all the other cases you would want to use the SuccessFactors Adapter as a Receiver channel.
All supported options for a selected Entity is available when using the SuccessFactors Adapter as a Receiver Channel. Only those Operations and fields are shown in the Operations Modeler that are exposed by the SuccessFactors system as returned by the SuccessFactors Describe API.
Also Note when using the Adapter for Operations like Insert, Update or Upsert certain fields are prefilled which are mandatory for the API to work.
- Specify the filter condition using which you would like to restrict the Query Result. This option is available only in case of Query Operation.
Note: You have an option to specify the value as an Xpath. This would be useful when using the SuccessFactors Adapter as a Receiver Channel and you would like the value in the Query to be extracted from the payload available in the message bus.
You can also specify a DateTime filed like last_modified_on as a Delta Sync operation in which case if the iFlow is scheduled to run at regular intervals only the changed records are fetched in subsequent runs.
- Configuring Sorting Criteria. This option is available only in case of Query Operation.
In case the selected entity allows sorting on certain fields as specified in the Describe API then you would get a filed list using which you can sort. In the case of the Entity in this example CompoundEmployee you may not have any sortable fields
- Click on Finish
An XSD is generated in the Project package src.main.resources.wsdl automatically. In case of an existing file you also an option to overwrite it.
The XSD file would be useful when you would like to map your payload to the data in the required format using the mapping step. In this simplistic example this step has been avoided.
In case of the Query operation you can use the XSD file on the LHS (Left Hand Side) of the mapping editor and transform it to the required format as required on the RHS (Right Hand Side)
In case of the Insert, Upsert, Update operation you can use the XSD file on the RHS (Right Hand Side) of the mapping editor and transform the data that you receive on the LHS (Left Hand Side) before passing it to the SuccessFactors system.
STEP 5: Configure the SucccessFactors Adapter – Scheduler Tab
The Scheduler Tab is available only when using the SuccessFactors Adapter as a Sender Channel. You can use the Scheduler Tab to schedule the triggering of the iFLow at specified intervals.
In the above example the Scheduler is triggered every day at 1:55 PM Indian Standard Time (IST)
STEP 6: Configure the Receiver Channel
For this specific example the easiest way to see your paylod output would be to configure an SFTP server as a Receiver Channel. With this you can see the queried payload in your SFTP server.
- Select the Receiver channel as SFTP
- Configure the SFTP Adapter settings based on the SFTP server provisioned to you by the SaaS Admin
STEP 7: Deploy the iFlow
- Save your iFlow and Right click on the Project Folder to trigger ‘Deploy Integration Content’
- Specify the Tenant to which you would like the iFLow to be deployed
- Click on the Worker Node in your Node Explorer. The Component Status View of the Node will reflect the status of deployment
Note: You can also see the status of the iFLow deployment by going to the Deployed Artifacts View of your Tenant Management Node in Node explorer
STEP 8: Check Monitoring and Logs to know the status of execution
- Click on the Tenant Management Node of the Node explorer to bring up the Monitoring View
- Double click on the Message to see further details and Logs in the Properties View
With this you have completed creating and deploying a simple Integration Project that connects to a SuccessFactors system.