Some business processes that involve integration between many systems require accurate master data (materials, customers, vendors).
If both of your systems are SAP systems then there are at least a few possibilities that facilitate master data distribution:
a) you can send data manually - after creation or changing the master data
b) you can use change pointer technology which (at least in standard) requires scheduling of a report that sends the master data.
c) you can also use MDM (Master Data Management) and try to distribute the data with it
d) you can use your middleware (Exchange Infrastructure) to help you get the master data when necessary
What about consequences of using each of these approaches?
a) when you send the data manually a user may simply forget to do it and he/she will only do it when someone who takes care of the other system
will phone/mail that person - this is probably the worst case as it's a fully manual procedure - so no holidays for users :)
b) when you sue change pointers you need to schedule the report to run as often as possible - which is not always possible
when you try to minimize job scheduling especially during work hours. This means that the change done to master data
will be distributed but only after some time
c) MDM - you need to have MDM - unfortunately not very popular yet
d) when you start building complex business processes in XI (BPMs), which check for master data in destination system
and then fetch it from the source system, then probably the rest of your flows will soon start to suffer - they will slow down
as having too many BPMs is not advisable if you need great performance.
Is there any other solution then?
ALEREQ01 - General request IDOC might be it.
SAP gives you a possibility to fetch master data with special IDOCs. This combined with a little ABAP coding
can become a very powerfull weapon against master data missing errors. All you need to do is to change
the inbound IDOC processing procedure like shown below:
Basically what you need to do is to check IDOC errors (in a function module exit) and if the erorr will show that master data is missing
you can call XI: either via ABAP proxy or RFC or even with an IDOC. All you need to send it the master data number
(material number for example. Then inside your XI you need to map this to IDOC ALEREQ01 and send to source system
which will send the missing data immediately.
Your IDOC that will be send to the destination system can look just like shown below (DPC1042 is the missing material number):
What you do get with this approach:
1. No need to build complex BPMs inside XI. You just need use a standard flow (with no BPM) to send the document to target system
and standard flow to send the request to source system. Also the master data distribution from the source system will not require usage of a BPM.
2. You can get the data very quickly (probably faster then if you'd use change pointers scheduled to run after work hours)
3. IDOC will be processed incorrectly in target system but since you can schedule IDOC reprocessing as soon as the master data
will arrive to the destination system the IDOC will be processed correctly automatically
4. No human interaction necessary
What do you think about this approach? Did you use any other approach in your projects?