SAP Knowledge Base Article - Public

3241909 - MDF data get rolled back after API upsert

Symptom

MDF data get rolled back after API upsert

Environment

  • SAP SuccessFactors HXM Suite
  • SAP SuccessFactors OData API
  • SAP SuccessFactors Metadata Framework (MDF)

Reproducing the Issue

  1. Use API (upsert) to update MDF field's value, for example, update field cust_A (string)'s value from 123 to 456
  2. However just after the API upsert, field cust_A (string)'s value will be again set back into 123 in a very short time automatically.

Resolution

It is caused by requests order.

For example:

The updates (API upsert) happened at 16:56:24,684.

Before the updating happened, there is another request ($Batch) that read the cust_A field, at that time, the cust_A had not been updated, and the value is still 123, this Batch time is 16:56:24,592.

Compared the two time intervals, the upsert request is 16:56:24,684, read request is 16:56:24,592 , which happened very very little before the upsert one. The upsert request updated the cust_A from 123 to 456 at 16:56:24,684, but at 16:56:24,592 the cust_A is still 123. It means the second request got the old data, and it also updated it. 

That's why sometimes the issue happens since it very much depends on time and order. 

For the current workaround, we suggest not sending requests in parallel, please increase the time between these two requests, for example to more than 5 seconds.

Keywords

MDF, API, upsert, $batch, roll back, metadata frameowork, SF, MDF-50515 , KBA , LOD-SF-MDF-API , OData APIs & Integrations , LOD-SF-INT-MDF , Metadata Framework API (MDF) , Problem

Product

SAP SuccessFactors HCM suite all versions