Symptom
You are facing the below issues.
- You have an Integration Flow in CPI to pull the Employee data using Odata API (EmpJob)
- It has been observed that the employees which are being modified in SF during CPI execution those employees data is not being extracted in the query.
- When the final file is generated these employees are missing in the file being sent to downstream systems.
Disclaimer: 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
Cause
This is an expected behaviour.
Resolution
The issue is caused by snapshot pagination.
For snapshot paging, while querying the first page, it gets all the record IDs of the records which meet the criteria and save them in the cache. Then in the queries of following pages, it gets the ids from the cache and queries the related records. During this time, if a new timeslice is inserted for some user, one new record with a new ID value is added to the DB. That means the id of current active timeslice is changed, so it cannot be got in pagination query and the employee would be omitted.
As a work around is to change the root entity from EmpJob to EmpEmployment. For employment info, it's non-effective-dated and its ID is constant. hence this issue could be avoided.
Keywords
Odata aPi, Snapshot, employee missing, CPI iflow, LOD-SF-INT-CPI , KBA , LOD-SF-INT-CPI , Standard SF to 3rd Party CPI (HCI) Content , LOD-SF-INT , Integrations , LOD-SF-INT-ODATA , OData API Framework , LOD-SF-INT-API , API & Adhoc API Framework , LOD-SF-INT-CPI-TPI , Standard SF to 3rd Party Integration using CPI , LOD-SF-INT-CPI-ERP , Standard SF to SAP ERP or S/4HANA Integration using CPI , Problem