You have more than one record for an employee's job information.
The SOAP API doesn't return information of all the time records.
Image/data in this KBA is from SAP internal systems, sample data, or demo systems. Any resemblance to real data is purely coincidental.
Reproducing the Issue
Let us use EmpJob SFAPI Entity here as an example to understand this article
We have two records for an Employee as seen from the below screenshot
Let us try to fetch this information via SFAPI
SFAPI Request XML
SELECT person_id_external,start_date, end_date FROM EmpJob WHERE person_id_external = 'XXXX'
SFAPI Response XML
We observe that the SFAPI has only returned the latest record and did not return the other record.
- This entity returns only latest Active timeslice (NOT future dated timeslice) irrespective of whether exmployee is active or inactive.
- Exceptions: SFAPI entities (excluding Compound Employee API) cannot fetch future dated information ie,it cannot fetch a timeslice with Effective date higher than today's date.
- Example :If the Start Date of latest time slice is higher than today's date then it would not be considered .
This is the expected behavior with SFAPI.
Suggestion - You may use Odata API to fulfill this requirement.
The below request can be passed as an example for the same employee
The response obtained is attached below.
Thus we obtain the information from both the records and hence confirm that Odata supports date ranges.
Other records not fetched via SFAPI EmpJob SOAP API issue , KBA , LOD-SF-INT-API , API & Adhoc API Framework , LOD-SF-INT , Integrations , Problem