SAP Knowledge Base Article - Public

3308651 - Translation values not getting deleted with full purge mode - OData API SuccessFactors

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: 

            {
                "__metadata": {
                    "uri": "https://api68sales.successfactors.com/odata/v2/FODepartment(externalCode='12345678',startDate=datetime'1900-01-01T00:00:00')",
                    "type": "SFOData.FODepartment"
                },
                "externalCode": "12345678",
                "startDate": "/Date(-2208988800000)/",
                "name_ko_KR": "",
                "name": "Asset Management US",
                "name_pt_BR": "Gestão de ativos - US"
            }
 
Please note that I have yet included the Korean language in my Request payload, but have kept the value blank between the quotation marks. Now, after sending the payload, the object will look like this in the manage data:
 

See Also

Working with Migrated Foundation Objects (MDF FOs)

Keywords

Foundation Objects,  MDF, Metadata Framework, languages, translating, Korean, German. , KBA , LOD-SF-INT-ODATA , OData API Framework , Problem

Product

SAP SuccessFactors HCM suite all versions