SAP Knowledge Base Article - Public

3263947 - Country Specific Entity field value is free-text (integer) OR picklist for a specific countries but ODATA API fetching random value from picklist although picklist is not configured for that country.

Symptom

Country-specified entity, e.g. PerAddressDEFLT, field address3 is configured as picklist for some countries and configured as field/integer for some countries.

address3 field configured as picklist for some countries and configured as integer/free-text for some countries.

Trying to fetch address3 label (PerAddressDEFLT -> Address3Nav -> PicklistLables -> Label) for a country.

Consider for specific country "Belgium", address3 field is configured as integer/free-text not as picklist. API response for picklist should be null because for that specific country, address3 configured as integer/free-text not picklist. But in this case, API is fetching the random picklist value.

Query:

 https://<api url>/odata/v2/PerAddressDEFLT?$format=json&$filter=personIdExternal eq '800000001951'&$expand=countryNav,countyNav/picklistLabels,cityNav/picklistLabels,stateNav/picklistLabels,address3Nav/picklistLabels,address4Nav/picklistLabels,address7Nav/picklistLabels&$nochche=123

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

Belgium case, "address3" is integer/free-text, not picklist

Response:  but ODATA API, incorrectly link to picklist, and return "Algeria" rather than null.

Environment

  • SAP SuccessFactors HXM Suite
    • ODATA API 

Reproducing the Issue

1. ODATA API Query: Query country specific entity for example PerAddressDEFLT and filed address3

 https://<api url>/odata/v2/PerAddressDEFLT?$format=json&$filter=personIdExternal eq '800000001951'&$expand=countryNav,countyNav/picklistLabels,cityNav/picklistLabels,stateNav/picklistLabels,address3Nav/picklistLabels,address4Nav/picklistLabels,address7Nav/picklistLabels&$nochche=123

2. OR create integration in integration center with PerAddressDEFLT  as starting entity and select filed by navigating to PerAddressDEFLT -> Address3Nav -> PicklistLables -> Label 

3. In response, you will get picklist with random value rather than null value.

Cause

The root cause has been identified to be a limitation of country-specified entity, e.g. PerAddressDEFLT.

Resolution

When setting picklist to a field for one country and setting none to the same field for other countries in country-specified data model, the field would be always resolved as picklist in metadata. In this case, if upsert a value to this field and this field does not refer to any picklist under the specified country, it is considered as a String type field that any value can be upserted. However, if the field refers to a picklist under the current country, the input value must be a valid option id of the configured picklist that it can be upserted.

A tricky thing is, when querying on this field and expanding the corresponding navigation, the field value would be considered as option id to match corresponding picklist entry. That is why you see there is picklist record for value '3', but no picklist record for value '999'. If you execute "/PicklistOption?$format=json&$filter=id eq '3' " in POSTMAN you will get a record, while if you execute "/PicklistOption?$format=json&$filter=id eq '999' " there would be nothing in the response. 

Unfortunately, it is hard to enhance the merged csf strategy regarding picklist configuration for same field under different country, so we do not have any plan on this currently. Please we suggest you to make sure the correctness of the input value in such field and ignore the wrong label string.

As this is an expected behavior of the Product, the only suggestion I can provide you is to submit an enhancement request via the Influence page (https://influence.sap.com/sap/ino/). Once submitted, customers will have an opportunity to view and support your request with the hope that if enough support is gathered, Product Management may include this functionality within a future product release.

KBA  2090228 - How to Submit Enhancement Requests for SAP SuccessFactors Products will contain the information you need if you wish to proceed with this suggestion.

See Also

Country/Region-Specific Logic | SAP Help Portal

Keywords

Country specific entity, country specific fields, picklist specific country field, string specific field, random picklist value, ODATA API, Integration Center , KBA , LOD-SF-INT-ODATA , OData API Framework , LOD-SF-INT-EC , Employee Central SFAPI & OData Entities , Problem

Product

SAP SuccessFactors HXM Suite 2211

Attachments

Pasted image.png