苍穹事件触发不生效问题分析

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

苍穹事件触发不生效问题分析

苍穹事件触发不生效问题分析

集成云通过拦截苍穹的操作事件,从而触发事件触发类型的集成方案。有些场景,明明点了操作按钮,却没有触发集成,那应该从何分析呢?下面将一步步排查:

注:以下场景不支持事件触发监听:

  1. BOTP反写;

  2. 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 



注意:工作流运行时上下文环境复杂,目前没办法稳定监听工作流中触发的单据操作,建议在工作流中写插件或脚本直接调用集成云的微服务。如下图:


苍穹事件触发不生效问题分析

苍穹事件触发不生效问题分析集成云通过拦截苍穹的操作事件,从而触发事件触发类型的集成方案。有些场景,明明点了操作按钮,却没有触发集成...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息