Symptom
In SAP SuccessFactors, there are two types of picklist structures: Legacy and MDF.
These differ in both data storage and behavior when accessed via API.
IMPORTANT NOTES:
- The business keys are hardcoded by SAP and cannot be configured.
- The "picklist migration" we usually refer to was a unification of the management platform (Picklist Center) and the underlying framework (MDF). However, from a data storage perspective, picklist values remain in separate objects/tables, and SAP currently has no plans to consolidate them into a single object.
- If you wish to share an enhancement idea, we highly encourage you to do so on the SAP Influence website. Our product managers review these ideas, and the most popular ones are considered for implementation in future releases (instructions in the KBA 2090228).
Environment
SAP SuccessFactors HCM Suite
Resolution
Base Knowledge
You'll find all base knowledge in the following chapters from the OData API implementation guide:
Summary
- MDF picklists:
- Business key (identifier): External Code
- Storage: PickListV2 object
- Picklist String field: stores External Code
- Picklist Navigation field: navigates to PickListV2 object, which contains both External Code and Option ID
- Legacy picklists:
- Business key (identifier): Option ID
- Storage: PicklistOption object
- Picklist String field: stores Option ID
- Picklist Navigation field: navigates to PicklistOption object, which contains both External Code and Option ID
High-Level Workaround in CPI
You can identify the picklist string field, navigation field, and picklist type in the OData API Data Dictionary (manually) or by using the OData Metadata API ($metadata).
If the navigation points to:
-
PicklistOption: It's a legacy picklist and uses optionId as the key.
-
PickListValueV2: It's an MDF picklist and uses externalCode as the key.
This determines:
-
Which field to use in upsert payloads.
-
You can create a mapping from externalCode to optionId when sending data to SuccessFactors (especially for legacy picklists).
-
-
How to extract and format values during queries.
-
You can optionally create a mapping from optionId to externalCode for readability before passing query results downstream.
-
For consulting matters, please contact your CSM or AE (see instructions in KBA 2671448) to discuss engaging Professional Services or an Authorized Partner (see instructions in KBA 2149831).
See Also
Keywords
optionId, externalCode, PicklistOption, PicklistV2, Picklist Migration, MDF Picklist, Legacy Picklist , KBA , LOD-SF-INT-MDF , Metadata Framework API (MDF) , How To
SAP Knowledge Base Article - Public