Skip to Content

OData Upsert to SucessFactors

Hello Experts,

I've worked long time on this issue and I'm a little desperate. I'm trying to do an OData upsert to Successfactors Instance via our SAP PI 7.5. We have the Connectivity Add-On SP3 installed, all Adapters are up-to-date to 2018. The Connectivity is given, as I can see some logs on SF side.

The Source data is an IDoc containing CostCenters (COSMAS01) and is mapped to the FOCostCenter object I exported with HCI (yes, we have an HCI but can not use it in production for HR).
I'm using http, not https, as we're still on development.

The Channel Configurations are the following:

The output of the message mapping which is forwared to the Receiver Channel looks like that:

<?xml version="1.0" encoding="UTF-8"?>
<FOCostCenter>
<FOCostCenter>
<status>A</status>
<startDate>2009-01-01T00:00:00</startDate>
<name>Test1</name>
<externalCode>1391SKAFS21100</externalCode>
<description>Test1</description>
<cust_tocustCompanyCodeProp>1391</cust_tocustCompanyCodeProp>
<costcenterExternalObjectID>SKAFS21100</costcenterExternalObjectID>
</FOCostCenter>
</FOCostCenter>

But messages will always fail after the message mapping with the following error in message monitor:

I already checked the data modell on SF side, as I recognized, that the adapter seems to call ...successfactors.eu/odata/v2/$metadata before every upsert and seems to validate the inbound message again. My guess is that this fails somehow, so I already added the parameter to skip that action (set ValidateProperties to 'false'), but that also did not help and did not change anything with the error message.

I checked the datamodel and compared it to the message sent, this should work, as the payload fits the datamodel.

Also interesting...If I try to sent the OData call with external tools like postman it works like a charm.

Has anyone an idea what I'm doing wrong?


Best regards,

Philipp

Add comment
10|10000 characters needed characters exceeded

  • Follow
  • Get RSS Feed

1 Answer

  • Best Answer
    Mar 19 at 10:16 AM

    Answer: This issue was indeed within data modell in SFSF. We raised a Ticket and found an Entity (Background Section) with an inappropriate name.

    After fixing this, the upsert is working. So the Adapter seems to validate the payload against the metadata. If the metadata is corrupt, this validation fails and the interface is stopping.

    Add comment
    10|10000 characters needed characters exceeded