源系统新增加的操作如何可以监听或者拦截到?
问题:源系统的某个单据新增加了一个操作,希望集成服务云可以监听和拦截到这个新操作。
解决方案:目前事件监听只支持苍穹和EAS,针对这2类系统,有不同处理方法。
1. 苍穹操作触发事件监听说明:
下图列举了苍穹可以监听和拦截的所有事件,包含公共的或者客户自定义的操作。一般而言,苍穹的自定义后台操作都能拦截到,如果缺失,请知会集成服务云团队进行添加。
特别说明:下图片中put的key值为操作类型,value为集成云对操作类型的分类(业务部门不用理会)。注意:操作类型必须是对数据的操作,而不是界面动作,如addnew,new不应该包含在操作类型列表中,因为在数据集成中不可能会调用到。
2. EAS添加自定义操作并触发事件监听说明:
(1)、若希望目标数据操作列表中有自己自定义操作,请参考自身业务实体或CoreBase实体的新增修改审核方法为需要监听的实体增加新操作,操作的参数应该为IObjectPk或ObjectValue或两者的组合。如下图所示:
注意:
如果方法名是以get, exists, set,find, batch, is, not, have, has, Batch开头,则不认为是事件监听。如发现误报,还可以手工添加事件到集成对象。
EAS中新增的方法,如果参数类型是ObjectValue时不要选择实体,否则无法监听。
(2)、若希望新加的操作作为事件触发,则集成事件启动方案中的触发事件选上对应操作,若是EAS前端直接触发对应实体controllerbean的新加方法,则就会触发事件。需要注意的是,若新加的方法是在另外一个controllerbean中再嵌套进行调用的,要先调用引擎的。
(若要实现使下一个调用方法能被监听)
com.kingdee.bos.service.ServiceStateManager.getInstance().enableNextCallServices();
或
(若要实现当前调用方法能被监听)
com.kingdee.bos.service.ServiceStateManager.getInstance().getServiceState().enableServices()
举例:EAS-苍穹 凭证删除集成
场景:EAS跟苍穹做凭证删除集成,集成方案的启动方案采用的是事件触发,调用的EAS的单据删除操作。在EAS凭证编辑界面删除可以正常触发,但在凭证列表界面删除无法触发启动方案。
分析:发现序时簿删除调的是批量接口,开了一个新线程做提交、审核、过账、删除等操作,非EAS的标准按钮,无法监听,导致无法触发启动方案。
编辑页面截图:
列表页面截图:
建议解决方案:
通过这种dep扩展的方式加上这个操作。
源系统新增加的操作如何可以监听或者拦截到?
本文2024-09-23 00:50:29发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-142083.html