Symptom
You are trying to query data of employee data from PerPerson Odata API entity.
However, it doesn't return data of all the employees existing in the SuccessFactors system.
Image/data in this KBA is from SAP internal systems, sample data, or demo systems. Any resemblance to real data is purely coincidental.
Environment
- SAP SuccessFactors HCM Suite
- OData API
Reproducing the Issue
Execute the below query:
/odata/v2/PerPerson?$format=json&$select=personIdExternal
You notice that all the records present in sucessfactors system is not returned.
For example, you obtain one or two records as shown below:
{
"results" : [
{
"__metadata" :
{ "uri" : "https://api4.successfactors.com:443/odata/v2/PerPerson('1234')", "type" : "SFOData.PerPerson" }
, "personIdExternal" : "1234"
}, {
"__metadata" :
{ "uri" : "https://api4.successfactors.com:443/odata/v2/PerPerson('2345')", "type" : "SFOData.PerPerson" }
, "personIdExternal" : "2345"
}, {
"__metadata" :
}
Cause
This is a permission issue.
The API user (User who triggers the API call) has limited access to the data.
Resolution
Provide the below permissions to the API user.
Admin Center -> Select the Permission Role -> Click on Permissions Tab.
Scroll down to "Employee Central API" as shown in the screenshot and enable the highlighted permission.
See Also
Keywords
PerPerson Odata API issue, Employee Central HRIS OData API, call, blank, empty, null, results, values, field, query, odata, success, factors, , KBA , LOD-SF-INT-API , API & Adhoc API Framework , LOD-SF-INT , Integrations , Problem