SAP Knowledge Base Article - Public

3361805 - ODATA API: Background entity - Partial upsert results in null fields


While attempting to upsert an existing record in a Background entity - You only enter the values for the fields you wish to change. 

  • But this results in the rest of the fields becoming null. 


"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) GET:$filter=userId eq 'XXXX'&$format=json

employerEmail: null 


2) POST:


    "__metadata": {

        "uri": "Background_OutsideWorkExperience"


    "backgroundElementId": "XXX",

    "userId": "XXX",

    "employerCountry": "XXX",

    "employerAddress": "XXX",

    "endDate": "/Date(XXX)/",

    "employerZip": "XXX",

    "employerState": null,

    "employerCity": null,

    "startTitle": "XXX",

    "employerEmail": "TEST_BG_OVERWRITE",

    "bgOrderPos": "1",

    "employer": "XXX",

    "businessType": "XXX",

    "employerContact": null,

    "employerPhone": "XXX",

    "startDate": "/Date(XXX)/",

    "presentEmployer": "XXX"



3) Re-run the GET to confirm it's populated


4) The re-run same POST request without employerEmail in the payload


5) Run the GET again & you will see employerEmail is set to null



The system updates all fields for an existing background record, and it considers the non specified fields to be null on purpose.



If you wish to keep the original values for these fields, you need to specify the fields as their original value.



ODATA, API, Background, Entity, upsert, Success Factors 
, KBA , LOD-SF-INT-ODATA , OData API Framework , LOD-SF-INT , Integrations , How To


SAP SuccessFactors HCM suite all versions