电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

消息处理原理及扩展

来源:金蝶云社区作者:金蝶2024-09-233

消息处理原理及扩展

消息处理原理及扩展

1.      消息处理原理

依托于消息队列,当消息发送到消息队列后,根据消息中的“操作类型”来匹配对应的消息处理器,并由该消息处理器执行该消息,此处只涉及消息处理器的扩展。

标准产品内置的消息处理器如下:

在消息处理器定义中,同一种操作类型只允许定义一个处理器,但可以挂上多个插件。

其中“操作类型”指消息队列表(t_sfc_messagequeue)中的字段FOperationType,对于同一组别的消息,操作类型取自“待执行”状态的那一条消息。如生成不良类的消息,其同一组别的消息中,存在“组装扫描”和“生成不良”两种操作类型,此时取后者。

对于组装扫描、批量扫描、包装扫描等同属于生成工序汇报的扫描操作,虽然其最终都生成工序汇报单,但有细微差异,因此仍然把它们区分成不同的操作类型,以便有针对性地处理。在此也建议将处理器粒度尽量最小化,通用的处理则可以放到超类中。

下图是组装扫描消息处理器的定义:

1.1.  消息处理器机制

每条消息的执行入口为“处理器实现类”,还可以自定义多个“插件”,其中处理器与插件间可传递当前处理的消息对象(MsgHandlerParam),还可以通过“参数类”来自定义其他可传递的参数。

         所有处理器实现类的超类为AbstractMsgExecutor,所有插件实现类的超类为AbstractMsgPlugIn,所有参数类都由MsgExecutorParamAttribute以[MsgExecutorParam]属性的形式注册到实现类中,以便参数在处理器和插件间传递。

         以标准产品中的扫描类消息处理器ExecuteByCacheInfoExecutor和更新工序汇报子单据体字段的插件示例OptRptMsgPlugIn为例,类图如下:

执行顺序图如下:

可以在消息的执行前、执行后通过处理器实现类进行扩展,也可以在事件处理前、事件处理后通过

消息处理原理及扩展

消息处理原理及扩展1. 消息处理原理依托于消息队列,当消息发送到消息队列后,根据消息中的“操作类型”来匹配对应的消息处理器,并...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信