SuccessFactors (SF) is the Software as a Service (SaaS) Solution offering of SAP for Human Capital Management (HCM) covering varied domains such as compensation, employee management, Hiring, Benefits etc. SuccessFactors draws upon a long history of SAP in the field of Human resources and is considered as one of the defacto HR tools for any enterprise, big or small.
A typical question that comes up for many enterprises is how they can leverage their data in SuccessFactors by way of Analytics in the form of dashboards and reports. In this blog, we are going to look at the various options available within SF to be able to read and modify data if required through systems external to SF.
SuccessFactors provides for 2 ways of connecting your external 3rdparty system to the data:
SuccessFactors Data API (SFAPI):
This was the initial method offered by SuccessFactors to connect to other systems. This is a Web Service that runs on SOAP. The SOAP service is created to both read and write operations to and from your SuccessFactors instance. Data are exposed as entities called SFObjects. There are two types of operations that are used in SFAPI:
- Meta-data operations: It can be used to enlist the SFObjects and the corresponding fields in those entities.
- CRUD (Create, Read, Update and Delete) operations: It can be used to query or edit the data.
Note: Since SOAP is slowly being replaced by RESTful services like OData, the SFAPI will be gradually deprecated with new features coming only to the OData interface, however, because SFAPI came first, a lot of systems still support SOAP interfaces to SuccessFactors and a lot of third-party adapters have been written for SOAP.
The HCM Suite OData API is SuccessFactors Web Services API based on OData V2 protocol and is intended to enable access to data in the SuccessFactors system. It exposes the data as a RESTful Resource. The OData API provides for a standard on how to represent your data and a metadata method to describe the structure of your data. This API provides methods for CRUD-style access (Create, Read, Update and Delete) and is consistent with the common industry standard OData protocol, read and write operations are supported.
Security: SuccessFactors supports authentication using OAuth keys or user-based authentication for the OData APIs so that you can exercise granular security for the data.
The API reference (https://help.sap.com/doc/74597e67f54d4f448252bad4c2b601c9/1808/en-US/SF_HCM_OData_API_REF_en.pdf) documents the API for each module and details out the operations possible. The API being RESTful, is best suited for frequent or real-time requests for small amounts of data.
The OData API can be used to configure entities and each SuccessFactors module can be accessed using its own set of entities.
Which API connection is better?
It is advisable to use OData provided there are no limitations with respect to the protocols available for OData connectivity. When you run an ad-hoc SFAPI, it doesn’t simply run directly against the data as OData does. SFAPI’s are legacy APIs that rely on creating an ad-hoc report in the system, scheduling the execution of the report on the scheduler servers, and waiting for the job to complete. Once complete they provide the ability to download a CSV file containing the data. If the scheduler queue becomes backed up, the report might not finish in time and the client will opt to time out not wanting to wait longer.