Symptom
While trying to upsert the data in the SFOData.FOCostCenter entity in incremental mode(with new effective dated entry), if you are doing both deletion of some values for a couple of fields along with modifying the existing values for some fields.
But when we execute the process, for the fields we pass the value as 'null' it takes the previous value and does not create the new entry with value 'NULL'.
However if you execute the same upsert xml again, the fields for which the value was defined as null, gets updated with 'null' as expected and shows blank on the screen as expected.
Environment
Successfactor
Cause
It is the designed system behavior.
Resolution
The reason of this system behavior is actually the different MDF operation of two upserts-
1. When we execute the file the first time, the operation that gets processed is to insert a record with new time slice(New effective dated entry in the system)-
In this operation, the field values are copied from the already existing latest time slice for that record if the 'Upsert request xml' contains value as 'null' for some fields or if those fields are not specified in the request body.
2. When we execute the same file second time, the operation that is actually executed is to update an existing record-
The reason being, there is already a timeslice created for this in the SFSF Instance with the first execution of this xml.
So this time it just updates that existing entry with the values that are being passed in the Odata request data and does not copy over with the existing data in the system.
Keywords
KBA , LOD-SF-INT-API , API & Adhoc API Framework , LOD-SF-INT , Integrations , Problem