苍穹事件触发不生效问题分析
苍穹事件触发不生效问题分析
集成云通过拦截苍穹的操作事件,从而触发事件触发类型的集成方案。有些场景,明明点了操作按钮,却没有触发集成,那应该从何分析呢?下面将一步步排查:
注:以下场景不支持事件触发监听:
BOTP反写;
donothing操作勾选了【列表操作(不需要选择数据)】
1、检查是否事件绑定
在集成云【连接管理】-【连接配置】界面任意选择一个“当前账套”类型的连接信息,点击按钮【事件绑定】,即可打开事件绑定清单,通过过滤单据实体编码,查看当前单据绑定的事件和方案。如果没有相应记录,证明方案没有启用,无法进行监听。
注意:监听的操作应该是数据操作,而不应该是界面操作(比如打开、新建等是不支持监听的),donothing类型操作也支持事件监听。
2、检查是否生成集成云的触发日志
如果上一步骤有事件绑定记录却没有触发,则排查是否生成集成云是否产生触发日志。
在集成云【连接管理】-【连接配置】界面任意选择一个“当前账套”类型的连接信息,点击按钮【触发日志】,即可打开触发日志清单。
触发日志会列出所有单据的日志信息(默认保留7天),可以根据单据ID过滤触发日志详情。
如果是失败的触发日志,点开详情可以查看错误信息。当失败后,则不能触发后续的业务流程,需根据错误日志详情做好错误排查工作之后,再进行触发。
注:当提示‘命令(EventHandleService)未实现!’时,请检查远端苍穹和本地苍穹的版本是否一致,需两端版本号一致才可正常监听。
3、检查monitor日志,判断是否拦截到
如果上述步骤没有找到触发日志,则需要检查monitor,看是否有进入拦截逻辑。具体操作步骤如下:
(1)打开monitor的日志查询工具
(2)输入monitor搜索条件
classname栏输入kd.bos.ext.isc.EventInterceptorOpAction,开始时间选择操作的预计触发事件,点击查询即可。
(3)分析日志
查询的数据如下:
一般而言,如果进入了集成云的事件触发,则会打印关键字“拦截到操作”,可以通过这个判断是否触发集成云。
此外,在单据操作的前后各个节点,也有日志信息记录:
• 单据事务执行前:“拦截到操作”
• 单据事务执行后:“事务执行后”
• 推送集成云成功:“事件推送完成”、“ID[”
• 推送集成云失败:“调用集成微服务失败”、“ID[”
场景案例1:
可查看是否有如下类似日志
首先监听到业务标准操作:
但后续日志中记录了:事务执行后,拦截到的数据条数为:0
此类场景需排查对应业务单据标准操作对应的插件逻辑,是否在beginOperationTransaction中对原始操作对象做了篡改,如存在此类处理,平台这边标准校验逻辑中会在afterExecuteOperationTransaction中无法获取到对应操纵的实体,导致事件监听失效:
此类问题需拉通领域老师和对应业务产品线老师,排查优化业务插件逻辑。
4、检查平台的事件绑定
如果monitor没有打印“拦截到操作”字样的日志,则检查平台的事件绑定是否生效。具体步骤:
(1)开发平台搜索bos_opbizruleset元数据
(2)按单据编码过滤数据
(3)点开详情查看该单据监听的操作服务
如果上述的服务包含“集成服务云2.0拦截服务”,则可以监听到,并在monitor打印“拦截到操作”字样。如果没有打印,可以联系领域模型服务部查看。
如果监听的服务没有包含“集成服务云2.0拦截服务”,则可能是数据丢失或数据迁移导致的不一致。可以通过禁用启用集成服务云的事件监听方案。
5、 其他参考资料
https://vip.kingdee.com/article/182383?productLineId=29
注意:工作流运行时上下文环境复杂,目前没办法稳定监听工作流中触发的单据操作,建议在工作流中写插件或脚本直接调用集成云的微服务。如下图:
苍穹事件触发不生效问题分析
本文2024-09-23 00:48:00发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-141817.html