Symptom
You face a mapping error in the Message Monitoring when you try to replicate a customer from S4 to Sales Cloud Version 2.
In our message monitoring you might got a similar error like below (it might vary according to the code list name involved):
"message": "{\"error\":{\"message\":\"Role FLCU01 does not exist.\",\"code\":\"sap.crm.common.commonMessage.roleCodeValueDoesNotExist\",\"target\":\"{role}\",\"details\":[{\"message\":\"Delivery priority 02 does not exist.\",\"target\":\"{deliveryPriority}\",\"code\":\"sap.crm.common.commonMessage.deliveryPriorityCodeValueDoesNotExist\"}]}}"
The error occurs despite you maintain the Value Mapping in Settings for Business Partner Role.
e.g.
Internal Code "CRM000"
Customer External Code "FLCU01"
You want to understand why the error is still raised.
Environment
Sales and Service Cloud version 2
Reproducing the Issue
- Go to Settings
- Go to Integration
- Go to Message Monitoring
- check the error log for the erroneous entity
Error details:
{
"code": "inbound-data-connector.132",
"message": "Failed to process the inbound message.",
"details": [
{
"code": "400",
"message": "{\"error\":{\"message\":\"Role FLCU01 does not exist.\",\"code\":\"sap.crm.common.commonMessage.roleCodeValueDoesNotExist\",\"target\":\"{role}\",\"details\":[{\"message\":\"Delivery priority 02 does not exist.\",\"target\":\"{deliveryPriority}\",\"code\":\"sap.crm.common.commonMessage.deliveryPriorityCodeValueDoesNotExist\"}]}}"
}
]
}
Cause
You should always maintain the Code values in the Child Mapping group when using Parent Mapping Group Definition.
Refer to the Resolution for a better understanding of the logic rules.
Resolution
This is how it works.
We can have a Mapping Group where we maintain the common code lists which we call as the parent.
Where ever there’s a deviation we create an additional mapping group and enter the common mapping group as parent.
The additional / child mapping group is what we maintain in the communication configuration.
During message processing if a code list is maintained in the child it is read. If the code list is not there in child then it will be looked for in the parent.
To illustrate an example:
Mapping Group 1 |
| ||||||||
Code – Gender Code |
| ||||||||
Code - Party Role |
| ||||||||
|
| ||||||||
Mapping Group 2 (Parent = Mapping Group 1) |
| ||||||||
Code – Party Role |
|
Now we have a communication config with Mapping Group 2.
When a message is processed.
For Gender Code the mapping will be taken from Group 1. The rule for pass through or error maintained there will be considered.
For Party Role the mapping will be taken from Group 2. The rule for pass through or error maintained there will be considered.
Note: In this case if a message comes with Party Role = RE then that mapping will not be available. This is because the Group 2 mapping does not have the mapping for external code = RE.
The system will not go to Group 1 as code for Party Role is there in the child.
Keywords
KBA , CEC-CRM-INT , Integration for SAP Sales/Service Cloud , LOD-CRM-INT-S4H , Integration of C4C with S/4 HANA , Problem