从事务码SMW01里能观察到一个BDOC可能被发送往不止一个目的site去,比如下图所示的5个site都会收到该site,而高亮显示的SMOF_ERPSITE代表ERP系统QI3的client 504会接收到这个BDOC。 所以上图列表里的site是从哪里读取出来的? 以BDOCPRODUCT_MAT为例,在视图SMW3FDBDOC里维护回调函数: 第一个回调SMOH_REPLICATION_WRAPPER_MSG负责决定需要从CRM将该BDOC发送到哪些site去。 这个回调是自动生成的: 在我的系统里,一共决定出了有6个site需要接收: 上图的ABAP代码里使用了guid A17123B82C2DD5118BC8080006277F8D来查询表smohsubsit,那么这个guid到底指什么东西? 可以在表SMOHPUBL里查询到guid对应的对象描述:Product Materials(MESG) 到这里我们发现它就是我们熟悉的在事务码SMOEAC里为某个site订阅它希望监听的众多对象之一。如下图,QI3/504的site注册了"Product Materials(MESG)"的发布,意味着一旦CRM的Product发生了修改,对应的BDOC就会发送到QI3/504. 要获取更多Jerry的原创技术文章,请关注公众号"汪子熙" |
|