Sourcing contract synchronization from Ariba to SAP PLM 2021 is failing with mapping errors in the Cloud Integration Gateway (CIG). Contracts created in Ariba Sourcing aren’t appearing in PLM sourcing management module.
The integration was working until last month when we upgraded to Ariba Q2 2024 release. Now CIG shows ‘Field mapping error: Mandatory field CONTRACT_TYPE missing’ but the field exists in the Ariba payload.
<Contract>
<ContractId>CT-2024-001</ContractId>
<Supplier>SUP-1000</Supplier>
<ContractType>ZF01</ContractType>
<!-- Other fields... -->
</Contract>
CIG Error: CONTRACT_TYPE field not found in target structure
I’ve checked the field mapping configuration in CIG but everything looks correct. The contract type ‘ZF01’ is valid in PLM customizing. Could this be related to integration content version changes or mandatory field validation differences between Ariba releases?
The error message says CONTRACT_TYPE (with underscore) but your XML shows ContractType (camelCase). This is a classic field mapping issue in the value mapping. Go to CIG → Integration Flows → Find your Ariba Sourcing flow → Check the XSLT mapping step. The transformation might be using the old field name format. You need to update the XSLT to map ContractType from Ariba to CONTRACT_TYPE expected by PLM.
Check your Ariba integration content version in CIG. The Q2 2024 release changed some field names in the sourcing contract XML schema. What was ‘ContractType’ might now be ‘ContractTypeCode’ or have a different namespace. Log into your CIG tenant and check the integration flow version - you might need to update to the latest prepackaged content from SAP.
Yes, PLM sourcing management has supplier-contract type validation. Check transaction SPRO → PLM → Sourcing → Define Contract Types. Each contract type has a ‘Supplier Category’ assignment. Your supplier SUP-1000 needs to have the matching category in the vendor master. Use transaction XK03 to check the supplier’s category assignment. If it doesn’t match the contract type’s allowed categories, the integration will fail even though both exist individually.
Good catch on the naming difference. I updated the XSLT mapping to use CONTRACT_TYPE but now getting a different error: ‘Contract type ZF01 not valid for supplier SUP-1000’. The contract type exists in PLM (checked in customizing table) and the supplier is valid too. Is there some additional validation in PLM that checks contract type against supplier attributes? The mapping configuration seems correct now.