SAP Knowledge Base Article - Public

3355430 - Upsert of Country field in the Candidate Profile


When running an integration to upsert Candidate Profile fields, the standard country field gets upserted as well (changes can be seen in the Candidate Profile history) despite not being mapped in the integration and not being present in the request payloads. 


SAP SuccessFactors Recruiting Management


The integration is for Upsert multiple. 


The behaviour is expected and it has been explained by Engineering in this way:

From DB if we see it’s a String field. Actually country is a picklist field in the candidate page and also in the “CandidateBean” which is the object that is holding this candidates data.

When we are performing any update operations we perform the below steps:

  1. Read the candidate data from DB (the country filed comes as a string value here).
  2. Convert it into Candidate bean (here country string value is converted to picklist value to store into Candidate bean object).
  3. Update the candidate bean with the input payload. Which means we are updating only the fields with are provided in the payload with the new values into Candidate bean object.
  4. Convert this Candidate bean data into DB values. Here we read the country picklist data from Candidate Bean and then convert it to again string value so that we can update it into DB.
  5. Call the DB update call to persist the data into DB.

This conversion and deconversion of string to picklist is only specific to the standard Country field because the country code can be two letter or three letter representations even though both have same picklist value. So rather than maintaining two different string values in Candidate Bean object, we do this conversions and maintain only picklist data in Candidate bean object.

basically, we read the same value and we push again the same value (if the country is not specified in the update payload). This has to happen seamlessly inside the code and also we are auditing this as well. The auditing is happening at a more inner levels of the code so this is getting logged.

If we are updating candidate data (any type of candidate data) and for operation we select "Upsert Multiple" then the country code is getting updated with picklist option id rather than the two letter country code.
This is not specific to the job. It is specific Candidate update job with Operation type as "Upsert Multiple". If "Upsert Single" is used, then the update is fine on the candidate data.

See Also

KBA 3146087 - Country field updates done through OData APIs have duplicate entries in the audit history page


Country, Update, Upsert, Value, Multiple, Single, Scheduled, Application , KBA , LOD-SF-RCM-INT , Integration Center & Intelligent Services , LOD-SF-RCM-API , Webservices & APIs , Problem


SAP SuccessFactors Recruiting all versions