The first big challenge in many projects is setting up the master data, as many of you know. Depending on the system landscape, this can also mean replicating them from one SAP S/4HANA system to another.
Now, assume you have a so-called sidecar scenario with two SAP S/4HANA systems connected, whereas one of them is running as a SAP TM. Here can be some obstacles when replicating the business partners into the system running as SAP TM.
Imagine, you have set up your business partner 'fully blown' in an SAP S/4HANA with many roles and all kind of different data. Now, when you replicate this business partner into an SAP S/4HANA system running with 'only' SAP TM, this requires that this system is set up with all the necessary customizing and stuff to digest the business partner, also those settings which are far beyond TM. Otherwise you will run into error messages during replication.
Of course, you'll hardly find anyone who is willing to maintain all those settings which are redundant for SAP TM and needed just for the sake of replicating the business partner. Assume for instance FI-specific information regarding accounting or some other complex data requiring some effort to be set up properly.
Now, the perfect solution would be a magic button like 'replicate only the data relevant for TM'. But this is easier said than done as it's not possible to define all the relevant business partner data for any kind of TM scenario.
Therefore, the promising approach is to filter the data to be replicated and thus reduce it to the minimal which is actually needed for the TM scenarios.
And there are the following two ways to do so:
At first you have the so-called segment filters in transaction DRFOUT, when doing the actual replication:
Here, you can already filter data on a rough level. This is efficient and will solve some issues. But it shows that this is sometimes not sufficient and a more specific filtering is needed.
Let's make an example with a DRF replication via web service from and to an SAP S/4HANA system.
We have created the following business partner in the SAP S/4HANA source system:
You see, data for 'Express station' and 'Train station' is maintained here. This data is redundant for TM so I don't want to replicate it. This might be a simple (or even stupid...) example, but it should be sufficient to show the way forward.
The issue is that there's no such segment filter in transaction DRFOUT, as you can see above.
Therefore, I can use BAdI MDG_SE_BP_BULK_REPLRQ_OUT:
Here, I can manipulate the data in parameter 'OUT' and the outgoing web service with the data of the business partner is created accordingly. So, with a bit of ABAP programming skills, I'm easily able to filter out data like 'Express station', 'Train station' or any kind of data from a more reasonable use case. Furthermore, I can even change data when I definitely know how data should look like in the target system. But this, I would see as the expert mode...in most cases the deleting of data in parameter 'OUT' will be sufficient.
Of course, this is still a piece of work filtering all redundant data. But at least I can avoid the effort of setting up 'not really necessary' customizing and master data in the target system.
By the way...kudos to our colleagues in EWM who have captured this in their integration guide in note 3080907 (see chapter 188.8.131.52).
I hope this helps you in your projects. I appreciate your comments!