SAP C4C Integration: Customization to achieve the Product Internal ID same as SAP ECC Product ID
This document explains the customization to be made to the standard integration for Product Replication from SAP ECC system to SAP Cloud for Customer to have the Product Internal ID on C4C same as the Product ID on SAP ECC system.
1. Please note that the Number Ranges on C4C cannot be Alphanumeric. (Either Alphabetical or Numeric is allowed)
2. Similar configuration as mentioned below can also be used for Business Partner Replication.
Kindly check the below documentation which elaborate the same.
SAP C4C Integration: Achieving BP Replication with Account ID equal to Customer ID in SAP ECC
In Standard Integration Scenario, Internal ID for Products is assigned using the internal number range in C4C while ECC Product ID will be populated into the External ID field.
To achieve Product Replication with Product Internal ID on C4C same as Product ID for SAP ECC.
To achieve this, make the below changes in the message mapping of the middleware (SAP PI/SAP HCI) for this interface:
1. Maintain the External Number Ranges for Business Partners in SAP C4C such that it matches the Internal Number Ranges on SAP ECC.
2. In standard mappings, Field MATNR from the SAP ECC IDOC is mapped to the ID field of SAP C4C Web Service.
3. Now add another mapping for this field. Add the mapping from MATNR from SAP ECC IDOC structure to ReceiverID of the SAP C4C.
Refer the below screenshot. Add the highlighted mapping.
4. Save the mapping and test the integration.
Performing above configurations will result for Product Replication from SAP ECC to C4C with C4C Product Internal ID same as the External ID and Product ID from ECC.
We have implemented this solution. And for initial replication of the product from ECC to C4C it works fine and the internal ID and external ID of the C4C product is filled correctly. However, when we do a delta update of the same product from ECC to C4C we get this error message: "Solve Configuration Issue in ID Mapping for Element ID-CONTENT".
Why is that?
Check the below discussion. (Comment from Shrikant Kamble)
Extracting Internal ID vs External ID for Products
Hope this helps
Thanks for the fast reply. Actually, I already checked that thread. We are using numerical number ranges only so therefore we always pass values (both internal C4C ID and External C4C ID) with leading zeros. But still we get the error.
Do not append External ID with leading zeros. Also check the Administration -> Edit ID Mapping for Integration. Search for the material and check the C4C ID and External ID. Compare that with your payload.
I'm also getting the 'Solve Configuration Issue in ID Mapping for Element ID-CONTENT' error in Material replication. The material is created successfully but fails when is updated.
Anders was using numerical number ranges and you said 'Do not append External ID with leading zeros'. In the other post (Extracting Internal ID vs External ID for Products) you said 'If Material range is numeric, it should pass material number appending with leading zeros.'. Which one is correct?
I've tried using both numerial and alphanumerical ranges with leading zeros and without zeros, but the error persists.
Here is my XML request:
<Material actionCode="04" descriptionListCompleteTransmissionIndicator="true">
<TextCollection actionCode="04" textListCompleteTransmissionIndicator="true">
Is it right? Do you have an example to share?
Thanks in advance.
For numeric number range, you should append leading zeros. The field length is 40 char. So if you have material length as 8, append 32 zeros to the field.
For alphanumeric number range, you should pass the ID as is. It act as a string.
I set the material number range to numeric.
The ProductInternalID in C4C has length 40 and in ECC has length 18. So, our PI created a mask to append leading zeros.
we have a non-stock material item which has item cat TAX and item cat group NLAG.
but when I am trying to create sales quote and request external pricing it is displaying error "Item category TAX is not defined for non-material items".
How to solve this error.
Try to simulate Sales Quote creation manually in your connected ECC system and then see if you get the same error of pricing there as well as you see it in C4C. This may be something on your ECC side itself which might need either correction or adjustment.
I have a related question regarding leading zeros:
We have products in ERP including leading zeros like “01800180”. I followed this blog and ended up with an internal ID in C4C of “1800180”, while the external ID is the correct “01800180”.
We are particularly struggling with the fact that by default all screens, searches and the like show the internal ID. For products with leading zero they show the “wrong” product number.
Is saw discussions where the advice was given to modify the screens and the like to always show external ID. I think this method would only bring us so far and we would end up with lots of work an customization and an half-baked user experience.
Is there (as of October 2017) a more elegant way to deal with this?
Happy to start a discussion, but wanted to keep a reference here, too.
Hi Chandan Bankar ,
Based on my understanding, it will work only for single ERP integration and not for Multiple ERP Integration Scenario where overlapping number range exists. Is my understanding is correct?
anybody had to implement this change *after* a golive (so after initial load has already been done, transactional data are in the system, ...)?
Did you manage in any way to do it? (I cannot really see how but if you did it and tell me, you'll be my hero forever).
Not sure if you still need it, but basically you need to remove the ID mapping for integration, map the old materials against a dummy ID, replicate again the materials and set the old materials to Obsolete. Of course, you need to check if they are used somewhere and replace them.
Thank you Andreea! I will try in my test tenant, if that works I'll owe you a dinner!
(Just a bit unsure about the "replacing" in the transactions. But I guess I can try.)
did you manage to do it?
Thanks for sharing in case you did!
yes, we did it! I spent my Xmas vacations doing that, but well... XD
You can contact me at alessa.magri on skype if you need, and I can share the procedure with you.