Symptom
You have necessary permissions to retrieve data for a specific entity, for example PerPersonal, and you are unable to retrieve data for PerPersonal fields like: preferredName or lastName etc.
Environment
- SAP SuccessFactors HCM Core
- OData API
Reproducing the Issue
- Run the following query:
- odata/v2/EmpEmployment?$format=json&$expand=personNav/personalInfoNav&$select=personIdExternal,userId,startDate,originalStartDate,serviceDate,endDate,personNav/personalInfoNav/firstName,personNav/personalInfoNav/lastName,personNav/personalInfoNav/preferredName
- data for the PerPersonal fields won't be returned
Cause
Missing permissions for the navigation entities.
Resolution
If you remove for example the permissions for PerPerson entity "Biographical Information" permission, you cannot use it in the navigations.
Even though you have the permission for the final entity, you need to either grant permission for the navigated entities as well, or query the PerPersonal entity directly in the above example.
You need to have RBP permissions for all the navigations in order to return the data properly.
Keywords
permission, OData API, navigations, unable, fields, target entity, starting entity, user mode, admin mode, admin. , KBA , LOD-SF-INT-ODATA , OData API Framework , LOD-SF-INT-EC , Employee Central SFAPI & OData Entities , Problem