cancel
Showing results for 
Search instead for 
Did you mean: 

Upsert an MDF object with pending workflow but different effectiveStartDate

shatsijev
Explorer
0 Kudos

Hi,

I have a question regarding an issue we're facing with an MDF (Metadata Framework) object in SuccessFactors. Currently, we have a workflow triggered whenever this object is saved. The object is associated with users in SuccessFactors, and it can be edited directly on their profiles.

When the object is initially created, a workflow is triggered, which requires approval before any changes can take effect. This behavior aligns with our expectations. However, we need to make additional changes to the Employee Profile when the effectiveStartDate differs from the one for which we have already requested changes.

The problem arises when we attempt to upsert a new record using the API with a different effectiveStartDate. Despite the effectiveStartDate being different, we consistently receive an error message stating that there is a pending workflow requiring approval.

In summary, I need to be able to upsert the new record and trigger the workflow for a different effectiveStartDate, even if there is another pending approval for a separate effectiveStartDate.

It's worth mentioning that we are aware that in order to allow modifications with a different effectiveStartDate, an initial record must be saved and approved, which is precisely what we have done.

Furthermore, we have already read the Admin access to MDF OData API post and ensured that the permissions were set correctly, following the guidelines provided in the article.

Here is an example of the request I sent using Postman:

METHOD: POST

URL: https://api5.successfactors.eu/odata/v2/upsert?$format=json&workflowConfirmed=true

Body:

{
    "__metadata": {
        "uri": "cust_XXXXXX"
    },
    "externalCode": "[THE USER ID]",
    "effectiveStartDate": "/Date(1685145600000)/",
    "cust_FIELD1": "BEL",
    "cust_FIELD2": "http://google.com",
    "cust_FIELD3": "Insert through API for record with different effectiveStartDate"
}

Response:

{
    "d": [
        {
            "key": null,
            "status": "ERROR",
            "editStatus": null,
            "message": "Waiting data already exists: '(externalCode=[THE USER ID])' with the index 0",
            "index": 0,
            "httpCode": 500,
            "inlineResults": null
        }
    ]
}

This example illustrates the request I made using Postman. It is a POST method sent to the URL mentioned above. The request body includes the necessary data, such as the externalCode representing the user ID, effectiveStartDate indicating a different start date, and additional custom fields (cust_FIELD1, cust_FIELD2, cust_FIELD3). However, the response received indicates an error with the message stating that waiting data already exists for the specified user ID at index 0. The HTTP code returned is 500.

Accepted Solutions (1)

Accepted Solutions (1)

shatsijev
Explorer
0 Kudos

For those looking for an answer, we checked we SAP support and it is impossible with the API for the moment.

Answers (0)