在表单搭建过程中,凡是涉及到接口服务调用的均称为第三方服务回调。通过对服务调用的支持,使宜搭可以和外部系统进行集成,实现数据互相流转,避免宜搭应用成为信息孤岛。服务回调的使用场景目前多集中于表单服务回调和审批节点的服务回调,不同场景场景下的服务回调使用方式大致相同,下面以单据页面中的服务回调说明其使用和配置过程。

前提条件

注册回调服务,详情请参见服务注册

服务使用场景

  • 单据第三方服务校验或回调
    • 第三方服务校验:用于在表单提交时,调用业务服务接口校验数据的合法性。该回调为同步调用。
    • 第三方服务回调:用于在单据提交、编辑、删除成功后,回调业务的第三方服务。该回调为异步调用。
    1. 在单据页面的设计器中,选择页面根元素,单击第三方服务回调
      说明:本例在设计器中添加第三方服务只是为了文档书写,不同场景的服务添加位置不同,但配置大体相同。
    2. 单击添加第三方服务回调进入添加界面。
      序号 参数 描述
      1 标题 您可以为即将添加的回调服务设置一个标题。
      2 单据提交 回调执行时机,表示当有数据提交时执行。
      3 单据删除 回调执行时机,表示当数据被删除时执行。
      4 单据编辑 回调执行时机,表示当数据被编辑时执行。
    3. 您可以根据需要在对应的时机配置回调服务,本文以“单据提交”为例说明配置过程,单据删除和单据编辑配置过程类似。

      1. 单击单据提交输入框,进入服务选择页面。
      2. 第三方服的下拉框中选择已经在宜搭注册过的服务
      3. 系统会为您列出该服务所需要的参数,输入参数值。

        参数值可以为常量,也可以是宜搭支持的表单变量。变量格式为:#{变量id},您可以只输入“#”号,系统会为您列出所有表单变量,选择某一字段后,服务调用时系统会将变量替换为字段值后传递给目标服务。

      4. 单击确定,完成回调服务的添加。
    返回格式要求:http的是 {"success":true},hsf的是 {"success":true,"content":true}
    • 作为表单校验时,success为true,表示阻断数据提交。
    • 作为服务回调时,success为true,表示调用成功。
  • 流程节点服务取人

    在宜搭流程的服务节点中,您可以使用第三方服务动态获取该审批节点的审批人。

    说明
    • 取人格式必须如下。
      [
        "工号1",
        "工号2"
      ]			
    • 假如是阿里内部使用,工号不足6位,记得前面补0。

    • 假如服务想返回空,直接返回null。

  • 流程节点配置业务服务校验或回调
    流程节点配置业务服务校验或回调分为以下两种场景。
    • 校验规则:流程发起或审批时,会调业务服务接口,根据返回的结果,判断是否能发起或审批流程。该场景是同步调用,会阻断数据提交。
    • 关联操作:在节点审批或者流程结束后,回调业务系统。这种场景是通知业务用,采用异步调用,不阻断流程。

    返回格式要求:http的是 {"success":true},hsf的是 {"success":true,"content":true}
    • 作为表单校验时,success为true,表示阻断数据提交。
    • 作为服务回调时,success为true,表示调用成功。
  • 流程数据发起查看权限验证

    1. 在流程页面选择设置 > 权限设置
    2. 单击高级添加服务回调,这里的回调和之前的不同。这里不会展示服务参数,宜搭只为服务提供了两个默认参数,如下表所示。
      名称 变量
      表单ID #{formUuid}
      当前登录人工号 当前登录人工号#{loginUserId}
  • 消息通知服务取人
    1. 在单据页面选择设置 > 消息通知。单击新建通知

    2. 新建通知界面选择触发条件和第三方服务。

    返回格式:
    {
      "success": true,
      "content": "[\"工号1"\,\"工号2\",\"工号3\"]"
    }			

服务调用支持的变量

  • 表单组件值: 输入#,会默认显示当前表单中的组件。当服务调用时,会自动带上表单中组件的值,赋值给对应的参数。

  • 系统内置变量
    名称 变量
    当前用户的工号 #{LOGINUSER}
    数据创建人工号 #{creator}
    数据创建时间 #{createTime}
    数据实例ID #{formInstId}
    表单ID #{formUuid}
    流水号 #{serialNo}

:第三方服务回调,不同使用场景,对接口返回的格式要求不同。请仔细查看每个场景介绍后面,数据返回格式的说明。