Symptom
You are performing API UPSERT to a FO object in your SuccessFactors instance and even though you are not including some specific languages in the UPSERT payload, the value for those languages are still present and does not get's deleted.
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
Translations are a different object from the one you are querying. This means that you have these additional fields such as name_en_US, name_en_GB, and so on in the object structure.
Before the migration, migrated FOs exposed language-independent texts for Name and Description. After the migration, Name and Description will still be available for migrated FOs,to expose language-independent texts. In addition, the two navigation attributes will also be available. However, they will not be really linked to FOTranslation, but will always return an empty value. So the language-dependent texts will be integrated as additional attributes into the migrated FO OData entity (for example FOJobFunction, FOPayGroup) in the standard MDF way.
Resolution
Let's use the example of an UPSERT in the FODepartment entity, using department below.
This is how the Department object looks before our UPSERT:
Now, If I'm performing other UPSERTs, and also would like to remove/delete the value in Korean for that object, but keep the Portuguese value, my request payload would look like this:
API URL: https://api68sales.successfactors.com/odata/v2/upsert?purgeType=full
Request Payload:
See Also
Keywords
Foundation Objects, MDF, Metadata Framework, languages, translating, Korean, German. , KBA , LOD-SF-INT-ODATA , OData API Framework , Problem