Symptom
An OData API upsert request to the ExternalTimeData entity to insert a time record in an employee's time sheet yields the following response, without any indication of error:
But when accessing the employee's time sheet via UI, an error can be seen after the upsert:
NOTE: 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
- Employee Central
- OData API
Reproducing the Issue
The error which is not reported in the API upsert response is a time collision error. To reproduce it, you must insert a time record on the same day/period in which another time record already exists and cannot coexist with the newly inserted record.
To know more about collisions, please refer to:
- Overview of Clock Time Collisions - SAP Help Portal
- Overview of Duration Collisions - SAP Help Portal
Sample scenario
The employee has a full day absence on Oct 12th currently recorded in his timesheet:
An upsert request is made to insert an attendance time record on Oct 12th as well, where the absence record is already registered in the timesheet as shown above:
POST https://<API_URL>/odata/v2/upsert
The upsert response indicates no error:
But a collision happened and can be verified when accessing the employee's timesheet via UI (refer to Symptom section above).
Cause
The ExternalTimeData API only reports technical errors which prevent ExternalTimeData records from being inserted or changed, and will not accuse collision errors and return them in the API request's response, because the collision checks happen on a later step when the ExternalTimeData record gets imported into the timesheet.
Resolution
Admin Alerts of admin alert type "Import Time Sheets" need to be checked regularly to detect collision errors.
See Also
Overview of Clock Time Collisions - SAP Help Portal
Keywords
time, record, collision, error, not, no, doesn't, reported, returned, api, upsert, insert, change, modification, report, contain, modify, modified, edit, edited, message, payload, response, ec, employee central, sf, timesheet, you cannot create new time entries when a full day absence already exists for this day, exists for the same period, you have entered , KBA , LOD-SF-INT-EC , Employee Central SFAPI & OData Entities , LOD-SF-INT , Integrations , LOD-SF-INT-ODATA , OData API Framework , Problem