Symptom
You are performing an upsert of data to MDF objects and when running the integration, it is failing with 504 responseCode
Environment
- SuccessFactors
- Odata API
- The upsert contains inline upsert of picklists
Reproducing the Issue
- Use any middleware tool
- Build your payload to upsert the MDF object
- When running it fails with 504 response code
Cause
Inline upsert of picklists has a high cost in terms of performance and should be avoided.
Example of not recommended payload
{
"__metadata": {
"uri": "Position(code='CODE',effectiveStartDate=datetime'2023-09-10T00:00:00')"
},
"code": "CODE",
"businessUnit": "CODE",
"jobTitle": "TITLE",
"jobCode": "CODE",
"cust_job_gradeNav": {
"__metadata": {
"uri": "PickListValueV2(PickListV2_effectiveStartDate=datetime'1900-01-02T00:00:00',PickListV2_id='PICKLISTID',externalCode='9999')"
},
"label_defaultValue": "test",
"label_en_US": "test",
"optionId": "99999"
}
}
Resolution
Using this approach is not recommended due to performance reasons, instead we recommend customers to:
- Create the picklist values in a separate upsert call
- Then upsert the MDF objects using the picklist values created
Keywords
504, upsert, error upserting position, MDF upsert 504, inline picklist upsert error , KBA , LOD-SF-INT-ODATA , OData API Framework , Problem