Symptom
- Some picklists are reading/writing (query/upsert) Option IDs(optionId) via ODATA API Operation
- Some of picklist are reading/writing (query/upsert) external codes(externalCode) via ODATA API Operation
"Image/data in this KBA is from SAP internal systems, sample data, or demo systems. Any resemblance to real data is purely coincidental."
Environment
SAP Successfactors HXM Suite
Cause
Expected Behavior
Resolution
The query/edit behavior of picklist fields depends on which picklist entity it navigates to, which is defined on the product (not selectable) and can be checked on the API Center -> OData API Data Dictionary.
NOTE: Currently it is not possible to change the entity to select if API should use Option ID or External code, it is hard coded on the product area. If you consider this an important feature, we encourage you to raise an enhancement request to our product team to include this on future releases.
To check on which type you should use for your field, follow the below steps:
- Log with an admin user with permissions to API Center;
- Go to Admin Center -> Company Settings -> OData API Data Dictionary;
- Search for the entity that you want to update through APIs, then check on the Type for the porperty that you are want to know.
* If the navigation points to PicklistOption, then optionId should be used to edit/query returns optionId value in the picklist field.
* If the navigation points to PickListV2, then externalCode should be used to edit/query returns externalCode value in the picklist field.
Note: Exclusively for the EC2MDF entities, our Employee Central colleagues mentioned that for now there is not yet any date planned for migration to take place, and the recommendation from our EC team is to follow up the roadmap in the future for further details. You can check the new and upcoming changes at this link. However, as mentioned, our EC team does not have an estimate date for the EC2MDF migration yet.
Workaround to use external code for the update from external systems like CPI:
- CPI (or another external system) queries for picklists option ID and its external codes;
- CPI (or another external system) creates a map between Option ID and External code to prepare the payload for the import;
- CPI (or another external system) does the import using the Option ID (as on the Data Dictionary) found through the mapping created on steps above;
This way you will be able to define the external code that you want to update, create a logic on CPI to read the option ID and external codes, to then do the upsert using option ID from what you found on the mapping.
See Also
Keywords
optionId, externalCode, PicklistOption, PicklistV2, Picklist Migration, MDF Picklist, Legacy Picklist , KBA , LOD-SF-INT-MDF , Metadata Framework API (MDF) , LOD-SF-INT , Integrations , How To