全部产品

宜搭集成示例

更新时间:2020-06-02 18:47

宜搭表单上链存证

阿里云区块链服务(BaaS)服务支持处理宜搭第三方服务调用,可以通过表单或流程的宜搭第三方服务回调功能自动触发上链。

这里以存证示例合约notary为例,在宜搭表单提交时,自动将内容发送到区块链存证。本示例以宜搭模板“财务管理系统 - 报销录入”为例,当员工发起报销流程并审批通过后,自动将报销内容上链存证。

前置条件

  1. 您需要先在区块链实例中安装云服务集成
  2. 已经开通了宜搭应用,并有相应的管理权限。参考如何使用企业钉钉开通宜搭
  3. 您已在业务通道中安装并部署了链码notary。参考如何安装部署链码

使用方法

  1. 进入阿里云区块链云服务集成控制台,点击宜搭标签进入宜搭集成页面。
  2. 点击标签页右上角的SHA256 密钥 - 查看,获取宜搭回调的外部服务地址callbackURL以及签名密钥token
  3. 进入宜搭服务注册管理页面,点击新增服务添加区块链外部服务。
    • 类型选择 HTTP
    • 名称可以自定义,例如“区块链存证”
    • URL完整地址填写callbackURL,并将其中的{NetworkName}替换为链码所在的通道名称
    • 勾选SHA256签名验证,并输入SHA256签名密钥token
    • 在参数列表中增加以下参数:
      • chaincode: 链码名称
      • args[0]: 参数0,函数名称 set
      • args[1]: 参数1,存证 Key
      • args[2]: 参数n,存证 Value
  4. 进入宜搭创建应用,创建财务管理系统模板页面,并点击左上角的使用此模板
  5. 在报销录入的应用管理页面,对流程进行配置。
    1. 在应用页面,点击流程 > 设置 > 升级到高级流程编辑器。对流程编辑器进行升级,并点击编辑进入图形化流程配置页面。
    2. 鼠标点击主管审批,点击右侧高级 > 节点提交规则,选择我们在第三步中创建的外部服务,勾选阻断提交并设置以下参数保存。
      • chaincode:notary
      • args[0]:set
      • args[1]:#申报人
      • args[2]:#报销金额
        注意:这里以单个元素内容示例,您可以通过链码接受多个参数来处理宜搭流程中的数据,也可以在页面编辑中配置 JS 脚本,计算提交表单的特征值并存证上链。
    3. 点击右上角保存,保存流程。
  6. 进入应用页面,点击流程页面中的发布将流程发布,并点击页面左上角的上线将应用上线。
  7. 通过网页或钉钉应用提交报销申请,审批通过后即可自动触发区块链合约调用,上链存证。

宜搭跨企业流程流转

宜搭在进行跨企业审批或者流程协作时,可以借助阿里云BaaS云服务集成功能,将区块链作为中间传递可信信息的媒介,驱动不同企业中的流程。

例如,企业A和企业B共同组成了一个联盟链,分别拥有自己的节点和云服务集成功能。当企业A中宜搭流程需要流转给企业B时,我们可以参考上面宜搭表单上链存证的方式来触发区块链上的智能合约,将需要跨企业传递的数据上链存证。企业B借助云服务集成,可以自动捕获企业A的上链数据,并根据数据自动触发企业B中的宜搭流程。企业A和企业B分别能自定义各自的任务流程,并能在区块链上查询到企业间传递的不可以篡改的数据及参数。

以下介绍企业B如何通过阿里云BaaS云服务集成功能,自动捕获区块链中的事件,并创建相应的宜搭流程。

前置条件

  1. 您需要先在区块链实例中安装云服务集成
  2. 已经开通并创建了宜搭应用,并有相应的管理权限。参考如何使用企业钉钉开通宜搭
  3. 您已在业务通道中安装并部署了链码taskmgr。参考如何安装部署链码

使用方法

  1. 进入宜搭控制台,并进入我们已经创建好的应用的管理页面。
  2. 获取宜搭应用基本信息
    • 点击应用页面上面的应用设置,进入应用数据标签页,并记录以下内容。
      • 应用编码
      • 应用密钥
      • 需要自动触发的页面参数:表单ID、流程Code
    • 点击页面>编辑,进入页面设计页面,依次点击需要从区块链中读取数据的组件,并记录对应右边栏的高级 > 唯一标识
      组件ID
  3. 进入宜搭用户管理页面, 选择一个用户作为流程的发起者,并记录该用户的ID(非工号)。
  4. 进入阿里云区块链云服务集成控制台,点击宜搭标签进入宜搭集成页面。
  5. 点击添加宜搭配置,配置区块链事件宜搭触发器,并填入以下信息:
    • 名称:触发器的名称,自由填写
    • 通道:选择链码 taskmgr 部署的通道
    • 智能合约:触发器监听哪个智能合约的事件消息,填写 “taskmgr”
    • 事件类型:固定值 Contract
    • 事件名称:智能合约中触发宜搭流程的链码事件名称,填写 “event-create-task”
    • 应用编码:第二步中获取的应用编码
    • 应用密钥:第二步获取的应用密钥
    • 表单ID:第二步获取的表单ID
    • 员工ID:第三步获取的员工ID
    • 流程Code:如果需要触发流程,这里填写第二步中获取的流程Code;如果触发的为表单,这里留空
    • 宜搭表单和事件字段的映射关系:由于宜搭中是以组件唯一标识来记录和存储数据的,因此需要将区块链事件中的内容映射到宜搭表单的元素上;被映射到宜搭的区块链事件必须为JSON编码的map<string, Object>数据。在映射关系中需要将第二步右边栏中获取的唯一标识与map的Key做一一映射。在映射中,云服务集成会自动添加一些默认Key供宜搭表单使用,可以参考下方附录
  6. 按照发起示例交易的步骤,在通道上发起示例交易。
  7. 当审批任务在区块链上创建时,宜搭也会创建对应的流程。

附录

外部服务参数含义

参数名 含义
chaincode 链码名称
args[0] 参数0,函数名称
args[1] 参数1
args[n] 参数n
transients.key1 调用临时参数 key1
transients.keyn 调用临时参数 keyn

宜搭表单和事件字段的映射关系中的默认事件字段

默认事件字段名 含义
__txid 触发事件的交易ID
__from 智能合约的调用者名称,<MSPID>.<UserName>
__to 触发事件的智能合约名称
__block 事件所在的区块块高