SAP Knowledge Base Article - Public

2310044 - Upsert on Background related OData API entities - SuccessFactors OData API

Symptom

When you perform an OData API insert/upsert call in a Background entity (Background_Mobility, for example) and you try to pass a value for the backgroundElementId field, you get below error message:

"The Property backgroundElementId is not insertable".

Or, when you are creating an input integration on Integration Center which would insert a record on any Background entity, you receive a similar error:

backgroundElementId_1.jpg

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
    • Integration Center
    • OData API

Cause

The backgroundElementId API field is a key field for any background Entity. This is a unique value and can't be edited (or upserted).

The bgOrderPos represents the order that the background records are shown in the screen. If one user has 2 Background_Mobility records, one will have bgOrderPos = 1 and the other will have bgOrderPos = 2. If you try to upsert a third record passing the value bgOrderPos = 2, an error will occur.

Resolution

Whenever you create a new Background record via OData API operation insert/upsert, you'll have to pass the value "0" in the payload for the backgroundElementId field.

The system will automatically generate a value for this field.

Note: In the Integration center, preview mode while testing if you receive the error "Complex key values cannot be null". You will also see backgroundElementId=null in the payload when the value is 0, please ignore and proceed to "Run Now".

Note2: In the Integration center, please also use Upsert single operation.

Also, in order to prevent passing an existing value to "bgOrderPos" field, you can pass the value bgOrderPos = -1 in the API call. This will make the new record be placed in the next position, for example: if the user has 2 Background_Mobility records and you upsert a third record with bgOrderPos = -1, it will be placed in the third position and will end up receiving the value bgOrderPos = 3.

See Also

Check this page of SAP SuccessFactors HCM Suite OData API: Reference Guide. It has more info about the Background entities and how they behave on OData API calls.

Keywords

successfactors, success, factors, odata, api, call, upsert, insert, create, new, record, value, integration, center, background, input, csv, UPSERT failed for the row with key:, Reason: Employee has no Edit access to record, bgorderpos , KBA , LOD-SF-INT-API , API & Adhoc API Framework , LOD-SF-INT , Integrations , LOD-SF-INT-INC , Integration Center , How To

Product

SAP SuccessFactors HCM suite all versions