如何通过插件开发的方式在业务关联中实现自定义的“数据所有权设置”?

问题描述:
现在区块链存证服务是通过【业务关联】模块中的“数据所有权”来设置业务数据上链时将指定的区块链“数字身份”(即对应的区块链证书、私钥等),以设置链上数据的“所有权”归属。即在区块链上以及相关智能合约的调用中,只有对数据具有所有权的“数字身份”,才能操作跟数据授权等需要权限控制相关的链上操作。当前区块链存证服务中的“数据所有权”标准实现只能从区块链配置服务的服务中心、组织数字身份、人员数字身份等列表中选择一个固定、有效的“数字身份”,指定为此业务关联相关的全部上链数据的数据所有者。而在某些上链场景中,可能有更加复杂的“数据所有权”设置需求,就可以通过插件开发的方式来实现了。
解决方案:
1、进入“区块链存证服务”的业务关联,在“数据所有权”切换页签为“自定义”。

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

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

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



