全部产品
云市场

(高级)第三方服务回调

更新时间:2019-03-15 19:48:04

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

注册服务

首先确认您是否已经在宜搭注册了自己了回调服务,您可以通过“平台管理”→“服务注册”进行查看,如果还没有注册,那么请先注册自己想要调用的服务,注册过程请参考服务注册部分文档。

服务使用场景

单据第三方服务校验/回调

  • 第三方服务校验: 用于在表单提交时,调用业务服务接口校验数据的合法性,同步调用

  • 第三方服务回调: 用于在单据提交/编辑/删除成功后,回调业务的第三方服务,异步调用

在单据页面的设计器中,选中“页面”根元素,可以看到“第三方服务回调”,点击按钮进行添加,如下图所示:

1

说明:本例在设计器中添加第三方服务只是为了文档书写,不同场景的服务添加位置不同,但配置大体相同。

点击【添加第三方服务回调】进入添加界面,如下图所示:

2

1.您可以为即将添加的回调服务设置一个标题
2.回调执行时机,表示当有数据提交时执行
3.回调执行时机,表示当数据被删除时执行
4.回调执行时机,表示当数据被编辑时执行
您可以根据需要在对应的时机配置回调服务,下面以“单据提交”为例说明配置过程:

3

配置过程大体分为如下几个步骤:
1.点击【单据提交】下方的输入框,进入服务选择页面。
2.点击“第三方服务”后方的下拉框,选择已经在宜搭注册的服务(服务注册部分请参考对应的文档)。
3.选择需要调用的服务,系统为会为您列出该服务所需要的参数。
4.参数赋值,参数值可以为常量,也可以是宜搭支持的表单变量,变量格式为:#{变量id},您可以支持输入“#”号,系统会为您列出所有表单变量,选择某一字段后,服务调用时系统会将变量替换为字段值后传递给目标服务。
5.点击【确定】完成回调服务的添加。

服务的编辑和添加过程类似,不再赘述。

返回格式要求:http的是 {“success”:true},hsf的是 {“success”:true,”content”:true}

  • 作为表单校验时,success为true,表示阻断数据提交。

  • 作为服务回调时,success为true,表示调用成功。

流程节点服务取人

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

4

注意

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

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

流程节点配置业务服务校验/回调

分两种场景:

  • 校验规则: 流程发起/审批时,会调业务服务接口,根据返回的结果,判断是否能发起流程/审批.该场景是同步调用,会阻断数据提交

  • 关联操作: 在节点审批后,或者流程结束后,回调业务系统。这种场景是通知业务用,采用异步调用,不阻断流程

5

返回格式必须是:

http的是 {“success”:true},hsf的是 {“success”:true,”content”:true}

  • 作为表单校验时, success为true,表示阻断数据提交。

  • 作为服务回调时,success为true,表示调用成功。

流程数据发起查看权限验证

6


在流程页面设置的权限设置中,通过【高级】可以添加服务回调,这里的回调和之前的不同,这里不会展示服务参数,宜搭只为服务提供了两个默认参数,分别为

名称 变量
表单ID #{formUuid}
当前登录人工号 当前登录人工号#{loginUserId}
  1. {"success":true,"content":"true"}

消息通知服务取人

7

8

返回格式

  1. {
  2. "success": true,
  3. "content": "[\"工号1"\,\"工号2\",\"工号3\"]"
  4. }

服务调用支持的变量

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

  • 系统内置变量

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

注意

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