关于 CRM 中间件系统设计的一些常见问题

举报
Jerry Wang 发表于 2021/09/28 11:41:10 2021/09/28
【摘要】 我们有时候会在中间件的事务码SMQ2即Inbound队列查看器里观察到以CSA开头的队列:这些队列的作用是什么呢?在SAP community上已经有很多朋友提出了相同的问题,也有专家在下列两个连接里给予了解答:http://scn.sap.com/thread/2056716http://scn.sap.com/thread/2079157简单地说,每次CRM系统里的object发生修改后...

我们有时候会在中间件的事务码SMQ2即Inbound队列查看器里观察到以CSA开头的队列:

这些队列的作用是什么呢?在SAP community上已经有很多朋友提出了相同的问题,也有专家在下列两个连接里给予了解答:

http://scn.sap.com/thread/2056716

http://scn.sap.com/thread/2079157

简单地说,每次CRM系统里的object发生修改后,如果该object在后台配置里被设置为需要将其修改同步到其他的接收方,则会自动生成这些CSA队列,通过这些队列把修改同步到其他接收方。

在下图167行执行之前,BDOC的状态如下:

167行执行完毕之后,BDOC状态发生了变化。

所有注册了CRM BDOC HIERARCHY_PROD变化的监听者列表通过function module SMW3_FLOW_GETLIST返回。

对于BDOC HIERARCHY_PROD来说,当前我使用的系统里有三个注册的监听者:

当变化发生时,这些监听者在SMW3_FLOW_EXECUTE里的循环体内逐一执行。

更多细节请参阅文章开头提到的两个SAP community的讨论issue。

这个表存放的内容是CRM产品同名settype COM_TA_R3_ID对应的业务数据。

表里的数据从来源上分两类:

1. 直接创建自CRM系统的相关数据

2. 从ERP下载的相关数据,如设备(equipment)

第一类的例子如下图:

字段R3SER_NO存储的序列号内容。

这个序列号在WebClient UI的ERP Identification处维护:

第二类的例子:ERP系统里设备的ID存储在字段R3IDENT里:

UI上对应显示在字段Technical Asset NO上:

对应ERP里维护的设备如下:

在中间件事务码R3AC1可以为一个中间件的适配器对象维护Block size的大小。

以上图的尺寸为50为例,假设在ERP系统里有110个设备(equipment)需要下载,那么CRM中间件会自动生成3个inbound队列执行下载任务,其中2个队列各下载50个设备,另外1个队列下载剩下的10个设备。

这些下载队列的事务处理是彼此隔离的,也就是说即使某个队列的下载出了错,这个队列里待下载的ERP设备未能成功存储到CRM系统里,但是并不会影响到其他队列的处理。

我的SAP community博客Step by step to debug Product Initial Download in CRM system 介绍了在CRM端如何调试中间件的步骤,在CRM端inbound处理的function module里能清楚观察到这个block size如何起作用的:包含来自ERP的数据的internal table的行数=block size

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

举报
请填写举报理由
0/200