如何通过插件开发的方式在业务关联中实现自定义的“上链条件”?

问题描述:
现在区块链存证服务是通过【业务关联】模块中的“上链条件”来实现对原始业务单据的过滤,即只有满足上链条件的业务单据才会进入后面的字段映射、执行上链等流程。当前区块链存证服务中的“上链条件”标准实现只能对业务对象的“单据字段”进行一些通用性的设置,类似于单据列表中的“条件过滤”。而在客户实际上链场景中,往往有很多复杂的“上链条件”需要判断,就只能通过插件开发的方式来实现了。
解决方案:
1、进入“区块链存证服务”的业务关联,在“上链条件”切换页签为“自定义”。

2、点击并打开“微服务参数”设置弹窗。

其中:
“业务云”选择插件所在的云,当为空时默认调用的是平台微服务;
“业务应用”选择插件所在的应用;
“服务名称”为实现了 kd.bsc.bea.mservice.api.BizModelDataQueryService 接口的微服务名称;
“方法名”固定为 query,无需填写。
3、点击并确认微服务参数后,点击“确定”,并保存业务关联。则采用此“业务关联”的上链任务在启动执行时,将不再调用区块链存证服务的标准“上链条件”,而是通过微服务调用的方式直接调用用户自定义实现的该微服务方法。

需要注意的是,如果使用了自定义插件方式来实现“上链条件”,则该业务关联中的标准上链条件将不会生效(即使已经设置了部分条件)。同时业务关联中的“关联查询”功能不会调用“自定义插件”,即“关联查询”将直接查看的是原始业务单据列表页。
关于微服务:金蝶云·苍穹平台中是以应用为最小单位来提供服务的,因此根据云(cloudid)、应用(appid)即可唯一确定一套服务,所以在业务上可以某服务注册到一个应用下的服务工厂类ServiceFactory中,即可被其他应用所调用。为了实现“上链条件”的自定义插件,必须实现 kd.bsc.bea.mservice.api.BizModelDataQueryService 接口,即:
public interface BizModelDataQueryService {
List<DynamicObject> query(Long mappingPkId, Long lastStcTime , String billNo);
}可以看到,query方法主要需要实现对“待上链”业务数据的
如何通过插件开发的方式在业务关联中实现自定义的“上链条件”?
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



