SAP C4C connecting to multiple ERP backends
I am writing this blog to talk about my experience with having C4C as the frontend connecting to multiple ERP backends,
Enterprises have multiple ERP backends, either due to complexity of the Business Units, acquisitions, or mergers. For a global sales or service leader, sometimes its imperative to get information across BUs with trends that can affect pipeline for example, and have a call to action message for sales team. C4C also has extended app, which features latest RUI version of CRM, and is device agnostic.
Some of the the components that need to be completed are listed below. They do not represent the complete list of work needed.
ID mapping – Make sure that for automated interfaces, id mapping is working, and for manual loads, based on system instance id, you have right ids mapped for integration. This is important if you want to use ERP IDs in C4C for these objects.
Communication Arrangements – Communication Arrangements is an important aspect to monitor payloads. You will need at least 2 arrangements for each object depending on number of ERP you are connecting to single C4C tenant.
Multiple ERP BAdI – This is an important BAdI to determine which ERP the payload goes out to, and creates subsequent process documents. An example for the BAdI is shown below. An example would be which ERP does the pricing request call gets routed?
Codelist mapping – Important to note here is that you have to create a code list mapping group, one per ERP. This is the most important aspect of the integration, as different ERP can have different names/codes for same C4C code.
Once the codelist mapping group has been created, corresponding codelists need to be mapped. Inheritance concept applies.
Source system identifier – It is important to consider the source system identifier field on master data and transaction objects to easily differentiate for users visually, and via search query, which source system is originating system of record. For example, in case of multiple accounts with same name in two ERPs, apart from number range and other differentiators, this field can be used to build queries based on business role fro example.
PI namespace – Since we had 2 ERP to integrate with, we used the concept of “tracks” for each integration. For each track of integration, we placed those customized mappings into its own custom namespace
Please revisit the blog, as I will update the blog with new URLs and learnings.
Please also share with the community on few more critical aspects for this scenario:
1. Did you connected two ERP systems with C4C for same data objects or different ?
2. How was the number range managed if multiple ERP had same object being replicated between the ERP and C4C?
3. What level of Custom development was done to accomplish this requirement?
There will also be an upcoming blog by my colleague @Tim Chang, who will deep dive into the technical challenges faced from SDK perspective as well.
Thanks for updating Rohit - so was this one way integration or was there data flow from C4C to ECC as well, for Accounts? If C4C to ECC data flow was there then how were number ranges managed for this?
There was 2 way data flow for tickets, and other transactions as well. For accounts, we locked down the SP/SH etc, as we wanted one source of truth. However, we managed prospects going to ERP using MDG. C4C no range was unique, and we used the same one for prospects as well. We hid the C4C id, as customer was mostly looking for ERP ID after conversion.
Good one Rohit.
could you give some more input about your following mention : “For example, in case of multiple accounts with same name in two ERPs, apart from number range and other differentiators, this field can be used to build queries based on business role fro example.”
I’m facing the challenge to integrate 2 ERPs into one C4C too and the approach seams to be quite the same like we intent. As the master data is quite different for both systems and the users will barely need to see the Data from both Systems we intend to make a “hard” Role cut there. This would also prevent users from choosing the wrong customer in an opportunity -> no questions “why is that quote not in my erp system, I triggered it from the C4C opportunity”.
could you give me some info, how that could be realize. So far we were told that it’s possible to do, but I didn't get any details on it.
We did not make a partition of same customer names (for example 3M) from two ERP based on business role. We had a KUT, which was filled based on which system it was coming from, for eg, values will be ERP1, and ERP2. Then we created custom queries for search objects, such as opportunities, quotes, my acocunts etc globally, and restricted them based on sales org, which was unique acorss the 2 ERP. you could use the KUT for system identifier to create search query as well, and limit the data.
The recipient determination BADI you are referring to is not available for service tickets. What solution would you recommend in this instance to determine the right ERP?
Could we have the logic in the PI integration flow?
Thierry - We have used below logic to use recipient badi for service ticket integration -
Is it also possible to apply this logic to other objects such as service contracts, registered products? Is it just a matter of using the contract object ID in place of “118” in your example above? The documentation for the BAdI lists the following interfaces as supported:
Business Partner Replicate
Business Partner Relationship Replicate
Sales Order Request
So is this really a limited list or can this BAdI be used for any object's interface?
I am attaching a presentation for golden record, in case your customer has overlapping data in 2 backends, which need to be consolidated (account 360) in C4C.
Rohit - Which Jam group is this document in? I'm getting an Access Denied error.
Can you please advice which Jam Group the document is in? I am too, getting "Access Denied"
Its an internal JAM group. If you send me your email address, I can send it to you
Thanks for your excellent insights Rohit.
Since we cannot send official mail id here, can you please advise the options.
I just messaged you my email id.
Does anybody know where I can find this document?
I can see that Rohit's status is "Former Member" so I don't think he is so helpful anymore.
Great summary .
We're planning a major C4C Field Service project that will include multiple ERP systems , some even not SAP .