C4C – Mapping ERP Account Group into C4C
Mapping ERP Account Group into C4C
Introduction
On ERP system, there is a field called Account Group which I could explain as a field used for determining which data (fields) should be displayed, hided, set to optional and set to mandatory for a specific customer. SAP provides several Account Groups which are predefined (Sold-to party, Goods recipient, Payer, Bill-to party, Competitor, etc.) although each client can define its own custom values.
On CRM side, or C4C side, there is no field which represents the same as it does in ERP so, we are more used to comparing it against CRM roles but, this is not completely correct.
Purpose
The aim of this document is to explain the steps that should be followed in order to be able to have ERP Account Group replicated into C4C tenant and, also, from C4C into ERP when creating a new Account.
STEP 1: Checking ERP values for Account Group
First step is to know which Account Groups are being used on your current project. For customizing them, functional consultant should go to SPRO: Logistics – General >> Business Partners >> Customers >> Control >> Define Account Groups and Field Selection for Customers.
It is interesting to highlight that, when creating a new Account through XD01, the Account Group drop-down shows all the Account Groups (including standard ones) so there is no way to filter and only leave those that are being used.
STEP 2: Enhancing C4C side through KUT (Key User Tool) and WSDL
Once you know the list of Account Groups to be used on your customer, you can now start creating the field extension on C4C:
1. Enter to Adaptation mode.
2. Click on “New” in order to open QC (QuickCreate) popup and, then, click on Personalization icon:
3. Next, scroll down and get into “Extensions Field” section and click on “Add”. Afterward, pick from Field Type value “List” which will change the popup in order to show you the following:
4. After filling in the field information, save and proceed to click on “Further Usage”:
5. This is being done in order to adjust the corresponding WSDL. Then, after having done the previous step, you will see that the background changed so, proceed to close the popup. Next, click on “Services” tab and it is required to choose which are the Web Services where new field wants to be used so just click on the right checkbox and Save.
6. Following step is to add the field into Personalization, save and publish.
7. Finally, in order to download the modified WSDL, it is required to get into Communication Arrangements section (under Administration workcenter) and click in the relevant scenarios:
8. Next, select the corresponding Web Service and click on “Download WSDL” button in order to get the modified WSDL.
9. Finally, check the downloaded WSDL and look for the created field:
STEP 3: Code List Mapping in C4C
As said before, Account Group concept does not exist in C4C so, when integrating Customers into C4C, the Account Group field (KTOKD) is being mapped against Business Partner Role field. By default, C4C provides two values for this field which are CRM000 (Customer) and BUP002 (Prospect). So when creating a new Customer, no matter to what Account Group belongs, it will be created as a “generic” account, most probably mapped against CRM000 BP role.
When doing Code List Mapping, it is required to configure specifically the mapping for “BusinessPartnerRoleCode” so, in case you have values AAA, BBB and CCC as Account Groups in ERP, you will have to map them against CRM000. The thing is that when the flows comes from ERP, it will be easy to determine the value that corresponds to AAA or BBB or CCC but, when doing the opposite flow and creating an Account on C4C side with BP Role CRM000 (Customer), it is not clear whether it should pick AAA or BBB or CCC; this is done by checking the “Outbound Default” flag on the mapping.
Find below a generic example where, when a Customer (CRM000) is created and sent into ERP, it would set value BBB:
This last comment is just informative as this Outbound Default checkbox will be ignored as it will be explained on following steps, as PO mapping will take care of the mapping. However, it is mandatory to pick one of the possible options as it will be checked by system before allowing user to save the mapping.
STEP 4: Overwriting PI standard WSDL
After having enhanced the C4C Account object and made available the field for being used by a WebService, it is time to adjust PI / PO side in order to make the new field visible to it:
1. Enter into Enerprise Service Builder and create a new software component.
2. Pick standard software component a replicate its dependencies into the new software component.
3. On the new software component, replace standard WSDL with the one downloaded on Step 2.
4. Based on the new WSDL, Message Mapping needs to be updated.
5. Enter into Integration Builder and replace the existing software component of the Operation Mapping by the new one that has been created.
Getting deeper into the specific mapping that needs to be done, on the Service Builder, it is required to adjust the mappings (in ERP à C4C flow) in order to map KTOKD field not only into RoleCode but, also into the ZACCOUNT_GROUP:
Then, it is required to change the mapping for C4C à ERP flow in order to replicate the value of our custom ZACCOUNT_GROUP into KTOKD field in ERP:
STEP 5: Filtering out some Account Groups from ERP (Optional)
It could happen that our Client has X Account Groups created but only wants to integrate and move Y into C4C so, for this scenario, it would be useful to use (if possible) transaction BD64 in order to adjust to the requirement.
This specific details are covered on this other document: C4C Integration – Filtering Products and Accounts from ERP to C4C.
STEP 6: Quick test!
First, go into Customer workcenter and, then, into Acounts in order to créate a new Customer.
Then, go to Administrator workcenter in order to Access to Web Service Message Monitoring and see if the WebServices had left C4C successfully.
By clicking on each registry and then, clicking on View >> Payload, it is possible to see the message that was sent into ERP. Based on the following screenshot, this Account corresponds to customer 700000024 in ERP system as shown under ReceiverID tag.
Finally, jump into ERP system and enter into transaction XD03 in order to open the customer that was recently created in C4C and moved into ERP.
If customer is not found, you can enter into WE03 transaction in order to check IDOC monitor. It is also useful to use transaction BD87 when you want to reprocess an IDOC.
Great!! Thanks for sharing
Cheers,
Chandan
Thierry,
I am not getting completely what you say, would you please clarify? In C4C, there are 2 default values that "come" with the system which are BUP002 and CRM000.
Kindly clarify.
Thanks for commenting and regards.
Alejandro.
Hi,
I understand that this scenario you propose includes the creation of a field extention in C4C representing the account group and do the mapping accordingly. So that the right accoutn group in ERP is determined when the prospect flag is rmoved and the account is sent to ERP for the first time.
This is a different approach that the scenario explained i the SAP Cloud for Customer Quick guide e.g. Option 2 prospect in C4C, not in ERP, where a temporarily account group is assigned in ERP that is manually updated to the real account group e.g. Sold to party.
What made you choose for the 1st scenario instead of the 2nd?
MJ
MJ,
Sorry but I am not understanding your question as I am not finding the "Option 2" you mention.
We leveraged that custom scenario as there does not exist Account Group concept in CRM (it is an SD concept). As we wanted to have that value in CRM we created the custom field which got automatically updated when sending the customer (prospects are not being sent based on Business Config of our client).
Hope this clarifies your query, otherwise, feel free to provide further details on your question and I will try answering it.
Thanks and regards.
Alejandro.
Hello Alejandro,
Can you tell me how an account layout in C4C has the fields depending on one specific field value (in this case the ACCOUNT GROUP)?
For instance:
- accounts with account group AAA have the fields X, Y and Z
- accounts with account group BBB have the fields A, B and C
- accounts with account group BBB have the fields D, E and F
and so on...
JM