When creating a custom field for EmpEmployment entity and performed an upsert request resulted the following error message:
"Property customString20 is not upsertable. Please check the property setting in Admin Center > OData API Data Dictionary or the entity metadata"
Image/data in this KBA is from SAP internal systems, sample data, or demo systems. Any resemblance to real data is purely coincidental.
- SAP SuccessFactors HXM Suite
- OData API
Reproducing the Issue
1. Go Manage Business Configuration
2. Under Employee central, select employmentInfo
3. Create a new custom field by selecting a custom string in the drop down and choose custom-string20
4. Provide a label of your custom-string20
5. Select Details
6.Change the Visibility option to Edit
7. Save configuration
8. Refresh ODATA Metadata > Follow KBA 2171588 - OData API Metadata Refresh and Export
9. Perform Upsert Request
The created custom field value for sap: upsertable is set to false, even if the visibility functionality is set to Edit.
The reason behind this behavior is explained in this KBA 2467879 - To add custom field in termination portlet
In which there is a certain range of custom string allowable for employment info list.
In the given KBA, below are the range for custom string allowable for Employment Info list:
Create a custom string between the following range for Employment Info list as described in KBA 2467879 - To add custom field in termination portlet
From Manage Business Configuration:
ODATA API data Dictionary:
sap:upsertable = true
Please, note that this solution is applicable for custom fields only. Standard fields may not have the upsertable attribute changed.
Manage Business Configuration (BCUI) & Data Models (XML), ODATA API Upsert, Custom string, EmpEmployment Entity, KBA, Property is not upsertable, Employment Info list range
, KBA , LOD-SF-INT-ODATA , OData API Framework , LOD-SF-INT , Integrations , How To