Publish subscriber model in CRM Middleware


From the transaction code smw01, it can be observed that a BDOC may be sent to more than one destination site. For example, the five sites shown in the figure below will receive the site, while the highlighted SMOF? Erpsite represents that the client 504 of ERP system Qi3 will receive the BDOC.

So where is the site in the list above read from?

Take bdocproduct? Mat as an example, maintain the callback function in view smw3fdbdoc:

The first callback, smoh? Replication? Wrapper? MSG, is responsible for deciding which sites to send the BDOC from CRM.

This callback is generated automatically:

In my system, there are 6 sites to receive:

The ABAP code in the figure above uses the guid a17123b82c2dd5118bc8080006277f8d to query the smohsubsit table. What exactly does this guid mean?

You can query the object description corresponding to the guid in table smohpubl: product materials (MESG)

Here we find that it is one of the familiar objects that we want to listen to when subscribing to a site in the transaction code smoeac. As shown in the figure below, the site of Qi3 / 504 has registered the release of “product materials (MESG)”, which means that once the product of CRM is modified, the corresponding BDOC will be sent to Qi3 / 504