Text Collection Integration in Cloud for Customer
In this blog we will touch upon how Text Collections are replicated between C4C and external systems(ERP,CRM,S/4 etc.).
In Cloud for Customer Text collections or Notes can be maintained in multiple objects for e.g. Sales Quote, Orders, Materials etc.
However, there are slight differences between the way notes are saved in C4C and on-premise systems.
In C4C, the notes are language independent, meaning user can save only one note per text collection field for any given document, however in On-Premise systems, you could have N number of notes per field based upon different languages. This would also mean that irrespective of which language users are logged in C4C, the notes are same.
And for integration scenarios, TextCollectionTextTypeCode is the one which determines where or which field the notes would be saved.
Considering all of these details, lets get into the details on how texts are actually replication between C4C and other systems.
1. Inbound Scenario(On-Premise to C4C)
- In this scenario, as on-premise systems are capable of having notes in multiple languages, the inbound message would have multiple text notes.
- There could be multiple text contents with same Textcollectiontypecode but different language code.
- <TextCollection textListCompleteTransmissionIndicator=”true”>
<Text>
<TypeCode>0001</TypeCode>
<ContentText languageCode=”EN”>Test Note</ContentText>
</Text>
<Text>
<TypeCode>0001</TypeCode>
<ContentText languageCode=”DE”>Test Hinweis</ContentText>
</Text>
<Text>
<TypeCode>0001</TypeCode>
<ContentText languageCode=”FR”>Note de test</ContentText>
</Text>
</TextCollection>
- <TextCollection textListCompleteTransmissionIndicator=”true”>
- As C4C is capable of having single language independent note, so only one of the incoming notes is saved.
- To determine which one, we make use of Business Configuration activities, namely “Communication Language for Data Replication” and “Code List Mapping for Integration with External Applications and Solutions“.
- Maintain code list mappings for the typecode, 0001 as in our example for the datatype TextCollectionTextTypeCode.
- Code list mappings for all Text type codes are maintained with local context 10296.
- Now Communication Language maintained should match any of the incoming language codes.
- Now when we have code list mappings and communication language maintained, C4C will decide which note to be saved.
- Please do note, this particular note is still saved in C4C without any language associated.
- These configurations are required only for integration purpose, the actual notes are still language independent in C4C.
2. Outbound Scenario(C4C to On-Premise)
- Since C4C maintains single note per field, there would be only one text content in the payload.
- And this text content would have Text Type based upon the code list mappings.
- More importantly, here the language code would be picked from Fine Tuning activity “Communication Language for Data Replication”.
- This way, only a particular note is created/updated in On-Premise systems, other language notes would be untouched.
Additional Points to consider:
- Inbound replications do not consider issues with respect to Text notes as hard errors and message would be processed.
- If there are any issues/missing code list mappings or language codes, the message would still be processed, and text notes will be skipped from the document.
- However in case of outbound replication, if there are any missing code list mapping or any issue with code list mappings for text type code, the outbound replication will be stopped with corresponding error.
- This is so designed to prevent incorrect data flowing from C4C to ERP/CRM etc.
- If your issue is still not resolved, then please raise an incident for SAP Support. Also, please send the following information in the incident:
- Problem description
- Steps to reproduce
- Cloud for Customer Message ID
- IDoc number from ERP/CRM.
Nice Blog, Thanks Shiva.
I have added your blog to two incident. very nice & crisp info.
+ 1 shared with another customer. Very Nice Blog Shiva.
Thanks Shivanand Hangaragi
We are using the C4C to ERP scenario. We are already sending external notes mapped with an ERP text but we don't want to send the internal notes to the ERP so we don't use any mapping for them. But when a sales order is created and you inform the internal notes, it shows an error that says:
Is there any way of not sending this internal notes to the ERP?
Regards
Excellent blog!
One question, how can we maintain different languages in the notes? As ERP/S4 can expect specific different languages, how can we maintain this from C4C?
As in Business Configuration activities, namely “Communication Language for Data Replication” we can only maintain one language by default.
Thank you,
Best regards,
Teresa Sanchez
Dear Teresa,
As explained in the blog, C4C is capable of maintaining only single language independent Text/Notes.
The purpose of the fine-tuning “Communication Language for Data Replication” is just to determine which text/note to be picked/saved among multiple texts sent by ERP/S4.
So by standard you cannot maintain multiple texts in different languages in C4C, unlike ERP/S4.
Hope this helps.
Regards,
Shivanand
Hi Shivanand,
Thank you for your information.
Could you advice how can we achieve this please? Maintain several languages to send from C4C to S4
Thank you,
Best regards,
Teresa
Hi Teresa,
As explained in the blog, unfortunately it's not possible to maintain Texts in multiple languages in C4C. C4C saves only one single text note, that too language independent.
Regards,
Shivanand
Hi Shivanand,
Could you suggest any way to do it in SCPI or S4?
Thank you,
Best regards,
Hi Teresa,
If you really need to maintain multiple texts, then you can create extension fields, one for each language and perform custom mappings in CPI for these extension fields to map a specific language text.
You would also need to perform reverse mappings in CPI for outbound replication as well.
Note: These extension fields would just hold the text note, there would be no language associated with them.
This is not a perfect solution, as you cannot predict exact number of languages used in each document, but this could serve your purpose to save texts for all languages.
Regards,
Shivanand