Symptom
You are performing an OData API call on EmpEmploymentTermination and then expanding to EmpJob through jobInfoNav field. The data on jobInfoNav field is returning with no data.
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 HXM Suite
- OData API
Reproducing the Issue
Perform the API query below:
EmpEmploymentTermination?$select=endDate,jobInfoNav,personIdExternal,userId&$expand=jobInfoNav
And no data is returning in jobInfoNav:
{
"__metadata": {
"type": "SFOData.EmpEmploymentTermination",
"uri": "https://<api_url>/odata/v2/EmpEmploymentTermination(endDate=datetime'2022-09-08T00:00:00',personIdExternal='123',userId='123')"
},
"endDate": "/Date(1662681600000)/",
"jobInfoNav": null,
"personIdExternal": "123",
"userId": "123"
}
But when you query EmpJob entity, you can see that there is data maintained on it:
{
"__metadata": {
"type": "SFOData.EmpJob",
"uri": "https://<api_url> /odata/v2/EmpJob(seqNumber=1L,startDate=datetime'2022-09-08T00:00:00',userId='123')"
},
"managerId": "456",
"userId": "123"
}
You already reviewed the permissions of the API user and it has all proper permissions.
Resolution
For EmpEmploymentTermination expanding EmpJob entity, the expand logic checks if EmpEmploymentTermination's endDate is one day prior to EmpJob's startDate.
So, taking the sample from "Reproducing the Issue" section of this KBA, EmpEmploymentTermination's endDate and EmpJob's startDate have the same value (2022-09-08T00:00:00), and this is the cause of the issue.
Following the expand logic, it would return proper data if EmpEmploymentTermination's endDate was 2022-09-07T00:00:00, which is one day prior to the startDate from EmpJob.
So, in order to fix this, please consider changing the EmpEmploymentTermination's endDate to follow the expand logic.
Keywords
expand, navigation, job info, termination, null, blank, empty, , KBA , LOD-SF-INT-EC , Employee Central SFAPI & OData Entities , Problem