SAP Knowledge Base Article - Public

2799250 - Odata API Upsert Picklists with same label behavior


 We have two values in Picklist that has the same label.

One is active, the other one is inactive.


On our request payload, I have upserted 666835 (active) and response payload showed that it was upserted.



However, when I checked in UI, the inactive one was upserted and not the active one per the request payload.

"Image/data in this KBA is from SAP internal systems, sample data, or demo systems. Any resemblance to real data is purely coincidental."


SuccessFactors OData API

Reproducing the Issue

1. Upsert the active value in picklist via Rest client tool

2. Check response payload > Status: OK & Upserted

3. Checked in UI, the inactive one (that has the same label with active value picklist) was upserted


For picklist properties API will handle by option id or external code, while importing will handle by label.

So for API upserting, it will convert option id or external code to label then pass to importing logic. For this case, the items with option id 666,835 and 666,836 have the same label.

Imports is deriving the option id of the one that is OBSOLETED. This happens when the same label is present for two options, and it gets the one that is OBSOLETED.


Change the name of OBSOLETED picklist label.

See Also

    2773713 - Post Migration Odata API Picklist MDF and Legacy Behavior with OptionId and MDF ExternalCode


Picklist Upsert, Multiple Label , KBA , LOD-SF-INT , Integrations , LOD-SF-INT-ODATA , OData API Framework , Problem


SAP SuccessFactors HCM Core 1902