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

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

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

问题描述:

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

解决方案:

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 方法主要需要实现按照“待上链”的业务数据来完成对数据所有权的设置。即通过此接口给定的“输入参数”以及其他自定义实现的方法,完成对数字身份的指定。

方法的入参为:

  • mappingPkId 是运行时调用此方法的“业务关联”主键,因此可以通过这个参数查询业务关联的其他基本信息等上下文(例如:“业务关联”所关联的“存证实体”或“业务对象”等);

  • bizModelData 是经过上链条件过滤后的一条业务数据,一般插件需要实现根据业务数据的不同参数值,来判断需要使用哪一个数字身份地址指定为上链后数据的所有者。

最终的返回参数是一个 Map,即根据业务自定义的数据所有权设置所指定的一个数字身份地址,其中包括三个字段:

  • type 标识使用的数字身份类型,参见区块链配置服务,一般为“服务中心”、“组织数字身份”、“人员数字身份”三者中的一种;

  • serviceCenterPkId 是所属服务中心的主键,此处必须与该“业务关联”所关联的“存证实体”的所属服务中心一致,否则可能上链失败。

  • bduIdPkId 是指定的数字身份对应的主键,可以是“服务中心”、“组织数字身份”、“人员数字身份”。即这个数字身份应当已经在区块链配置服务中存在,且“可用”。

 

更多关于区块链存证服务的“上链条件”插件实现,见文章:

https://vip.kingdee.com/questions/223164695522962688/answers/223164695539739904

 

更多关于区块链存证服务的“事件触发”存证上链,见文章:

https://club.kdcloud.com/questions/215842974327500032/answers/215842974361054464

 

更多关于苍穹的自定义微服务调用,见文章:https://club.kdcloud.com/article/82065157714706944


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

问题描述:现在区块链存证服务是通过【业务关联】模块中的“数据所有权”来设置业务数据上链时将指定的区块链“数字身份”(即对应的区块链...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息