SAP Knowledge Base Article - Public

3400398 - Odata Upsert in MDF object is failling with 504 response code

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

  1. Use any middleware tool
  2. Build your payload to upsert the MDF object
  3. 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:

  1. Create the picklist values in a separate upsert call
  2. 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

Product

SAP SuccessFactors HXM Suite all versions