Skip to Content
Author's profile photo Ivy Li

Material Middleware – Why do we need to set all the customizing places?

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’.


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.

Assigned Tags

      Be the first to leave a comment
      You must be Logged on to comment or reply to a post.