Symptom
The symptom is described in the title. For an illustration of a sample case, please download the attached screenshot.
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
- OData API
Reproducing the Issue
Please download the attached screenshot to view a sample case.
Cause
When inserting a new record/time-slice of an effective dated MDF API entity, it will by default copy all property values from previous time slices, then apply the values that you provided in the payload and save. Associations to child records are included as well.
Resolution
Include the parameter 'purgeType=record' in your upsert request (this type of purge is available only for MDF entities and the User entity).
With this parameter, when you're creating a new time record via upsert request, it will only contain the values provided in the upsert payload and will not inherit anything from the previous time slice. If the record/time-slice in your upsert request already exists, the upsert will have the same behavior as a 'Replace (PUT)' operation: the existing record's field values are all replaced by what's provided in the upsert payload, hence it's important to provide all the relevant field values in the payload when using the 'purgeType=record' parameter. Whatever is not provided in the payload will be set to 'null'.
Refer to some sample use cases of the 'purgeType=record' parameter:
Keywords
purgetype, purge, record, purgetype=record, replace, inherit, copies, copying, copy, MDF, odata, api, upsert, create, association, associated, child, composite, new, delete, remove, undesired, not , KBA , LOD-SF-INT-MDF , Metadata Framework API (MDF) , LOD-SF-INT , Integrations , LOD-SF-INT-ODATA , OData API Framework , Problem
Product
Attachments
undesired child record association_KBA.png |