Symptom
Is it possible to update the effective start date of an existing record using OData API?
Currently, this is possible through the UI. However, when attempting to do the same using OData API, the system will create a new record instead of updating the existing one.
This happens because the start date is part of the Business Keys used to determine whether the operation is an insert or update.
Environment
SAP SuccessFactors HCM Suite
Resolution
Workarounds:
-
Use the
purgeType=fullparameter during import or upsert: This allows you to completely overwrite all existing records (see purgeType chapter); -
Delete the old record and create a new one. Using Job Information as example:
- Business keys:
User ID+Start Date+Sequence Number -
Delete the old record by following Use Case 3: Delete an Employee Record, providing the Business Keys;
-
Create a new record considering EmpJob chapter, providing the Business Keys;
NOTE: If there are other records with the same User ID and Start Date but a different Sequence Number, the system will automatically adjust the sequence numbers for those records accordingly.
- Business keys:
Keywords
KBA , LOD-SF-INT-ODATA , OData API Framework , How To
SAP Knowledge Base Article - Public