I often heard of someone complaining about why material middleware needs to do so many customizing, or someone would say that they could make material replication run well without setting all the customizings. I ever had the same feelings whenever helping customers to check all the customizings one by one.
However, if we could understand the functionality of each customizing, it would become easier to find the key point in your material middleware to recognize the root cause.
Now I would like to share my understanding about these customizing places and give you some useful tips if your middleware is not working suddenly.
First I will list all the important SAP notes, KBA notes, important transactions and settings. Some of you might already be aware of them:
A, Useful notes:
720819 – Middleware consumer entry for SRM in OLTP system
1498111 – No authorization for data selection in initial load
1501685 – Table CRMATAB is empty
B, Useful KBA notes:
KBA 1553940 – First checks to Material and Product Category transfer errors
KBA 1717049 – Material Master Basic data text not replicated to SRM
KBA 1823682 – Material description is not transfer to SRM or characters are appearing as #
C, Useful t-codes:
R3AM1 – check the status of all the objects
R3AS – do initial upload of material from ECC to SRM
SMOEAC- check CRM RFC-destination and Consumer
SMW01 – check errors
SMW02A- check errors
R3AC3 – filter for different objects and also check consumer set
SMQ1 – check outbound queue in ECC side
SMQ2 – check inbound queue in SRM side
D, Useful tables:
ECC table NDBSMATG16 : store guid of material
ECC table NDBSSRVG16 : store guid of service master
SRM table comm_product: store product id and guid of material(01) and service master(02)
ECC table CRMPRLS : store system guid
SRM table CRMMLSGUID : store system guid
Then let me give you some tips in making use of the above information:
Sometimes, you might encounter dump MESSAGE_TYPE_X in ECC side while replicating materials. First you will check if ECC table CRMATAB is empty or RFC user has MW_ADMIN role in ECC side according to 1501685 & 1498111. However sometimes this still doesn’t work after this.
At this time, I suggest you check if you maintained such an entry in ECC table CRMRFCPAR:
Both ‘Object Name’ & ‘Load Type’ are set as * which will introduce such kind of issue.
So please strictly follow the steps in note 720819 to maintain entries in this table.
If r3am1 shows red light for some objects, you should first check the SMQ1(ECC side) and SMQ2(SRM side) to see if there are some sysfail entry there.
If so, check the specific error reported. If it is an exception, usually it will be raised in ECC side in t-code st22.
If no stuck entries in outbound and inbound queues, then you should go to SMW01 or SMW02A to check if there is any specific error for materials in SRM system. With the error information and simple guide, you will find the root cause.
Sometimes material middleware is not working suddenly after system upgrade or system copy.
The first thing is to check if the guid in SRM table CRMMLSGUID and ECC table CRMPRLS is identical.
To correct this, use Z-report in SAP note 765018 to make them consistent.
For SM59 RFC connection, you must be already aware of some points, such as RFC user should have MW_ADMIN role assigned, language should be blank for RFC user. However sometimes, unicode setting will also affect material replication.
How can we judge if ECC system is a unicode system? Go to System => Status
After judgement, you may read note 1155841 to maintain all the parameters.
All the places to set ‘Consumer’ should be consistent, or else the material replication can’t find the target system.
In ECC side, you have to make sure all the ‘consumer’ or ‘user’ fields have consistent name, such as ‘SRM’.
In SRM side, you have to make sure all the following places are having the same consumer name such as ‘SRM’.
SRM table: SMOFPARSFA
t-code SMOEAC: please make sure the name is the consumer name
t-code R3AC1: please make sure consumer is set correctly for both material and service
t-code R3AC3: please make sure consumer is set correclty for other objects, such as DNL_CUST_PROD0
The last point I would like to remind is the filter settings. Some of you might forget you ever set some filters in ECC or SRM side.
ECC side: table CRMFILTAB is used to store filter settings
SRM side: R3AC1 & R3AC3 have filter tab to synchronize filter from R3
I will update this blog if I have more good experience to share with all of you.
Welcome to any feedback if you are interested in this topic.