SAP Knowledge Base Article - Public

3383349 - MDF Import new record with different effective date behaves differently between UI and API as " Pending data exist! " is thrown


As a SuccessFactors administrator, When I create a new  record with a different start date via API (https://myURL/odata/v2/upsert?$format=json&workflowConfirmed=true), I get an error message stating there's a pending approval for a previous record with another start date: " Pending data exist! "

In simpler terms, we can't make changes if another request is waiting for approval, even if it's for a different start date and although The MDF object  have  Pending Data set to yes.

The only way to create a record in this situation is through the SF UI, not using API or the MDF Import.


SAP SuccessFactors HXM Suite 2305

Metadata Framework (MDF)

Reproducing the Issue

  1. created a custom MDF object which allow multiple changes per day
  2. Set Pending Data to yes
  3. Assign workflows that requires approval to apply changes on the MDF
  4. Set the externalCode as the user ID
  5. Allow modification directly on Employee Profile
  6. Proxy as a user  X 
  7.  create one record which triggers a workflow as of any effective date. Do not approve this record, leave it.
  8.  create a new record in a future date for the same employee and that also works via UI
  9.  approve both workflow via UI and notice that records are created as expected ✅ 
  10. Now try to do the same but triggering a workflow as of any effective date then creating a new record in a future date for the same employee via MDF Import (or API) -> It fails ❌ with error " Pending data exist! " 


Currently we do not support inserting a new record on a pending workflow via MDF import or via UI, you cannot make any more changes to the record until your pending workflow requests have been approved or rejected. 

Currently the only way to create a record while another is awaiting for approval is to go through SF UI. 

📌 The UI behaves based on below 3 use cases:
  1. With The MDF object  have  Pending Data set to yes. When no existing record is present, a user can create one with a workflow. However, if the user attempts to create another record for the same individual, it is expected to fail unless the initial record is approved.

  2. With The MDF object  have  Pending Data set to yes. If there is an existing record already approved, a user can insert new records with workflows, and they can do so as many times as needed, provided the start dates are different.  For these newly created records using insert , no modifications can be made until they are approved.

  3. With The MDF object  have  Pending Data set to yes. In cases where there is an existing record and user does the "make correction to it" which triggers the workflow, the user will not be able to make changes to the record after the workflow has been initiated.

💡 while there is a difference in behavior between the SuccessFactors UI and the API (and MDF import), such behavior is not considered a bug but rather an enhancement opportunity. Please check   our Influence Improvements platform for any available requests from customers for possible future development cycle considerations. - 2090228 - How to Submit Ideas for SAP SuccessFactors Products

💡 Main concerns are 

1) On manage data UI today, when user clicks "Insert a new record", for the newly inserted record, it will copy the field values from the record where he/she clicks the "insert" button. User either acknowledges those copied values or does some updates if needed then submits for approval. User clearly know what they are doing.

While on API side, the determination of which record to copy is more like a system logic, if we support insert multiple timeslices, there will be more implicit behavior introduced. Our customer need to be clear about those complexity before sending out APIs when they prepare the payload


There are 3 timeslice for record 1 existing 

  • record1, effective dating=2000/01/01
  • record1, effective dating=2010/01/01
  • record1, effective dating=2020/01/01 

Now user wants to insert a new timeslice (record1, effective dating=2022/01/01)

  • if 2020/01/01 is a pending record, when user insert above record, our system will copy over values from the latest effective normal record which is 2010/01/01;
  • if users want to insert multiple records like 2022/01/01,2023/01/01, all of them will copy same values from 2010/01/01 as this is the lastest effective normal record(if we support such operations in future);
  • Note if we do not have any workflow configured, current behavior is - such insert will first insert 2022/01/01 (copy values from 2010/01/01 then apply values in payload of 2022/01/01), then 2023/01/01 will copy values from 2022/01/01 on the fly (not 2010/01/01). That means customer should be very careful when they try to insert new timeslice,  to prepare the payload, they might need to know whether current object is configured with workflow, which original value will be copied etc. 
2) API can support batch insert for 1000 records by default per request v.s UI only trigger limited workflow. We already see some integration usages respecting workflow on production. due to this, we also need to be careful to support insert multiple time slices on same code when pending record existed.

See Also

KBA 3070930: This article explains why you can't make changes when a workflow is pending approval for a specific use case which is a position MDF import 

KBA 2544336: Custom MDF workflow and its behaviors depending on Pending Data = Yes/ No. 


CS20230005510771, sf, sfsf , sf sf, SuccessFactors, SuccessFactor, Success Factor, bizx, pending, data, exist, position, error, unable, import, new, record, workflow, INC5771003, /odata/v2/upsert?$format=json&workflowConfirmed=true , KBA , LOD-SF-MDF-IMP , Import and Export Issues , LOD-SF-EC-WFL , Workflows - Configuration, Tools, Objects & Rules , LOD-SF-MDF-OBJ , Object Definition & Field Related Issues , LOD-SF-MDF-WFL , Custom Object based Workflows , Product Enhancement


SAP SuccessFactors HXM Core 2305