跳到主要内容

Q-Source被动

功能介绍

目前系统间的数据传输大多通过rest API接口完成。轻流强大的连接相关功能,支持和三方系统完成复杂业务的集成。

Q-Source被动可以理解为轻流每个应用有个“自定义接口”,可以将三方系统发送的数据(JSON/XML/正则表达式)接收,并解析到应用的字段中。完成对应数据的新增和更新。

轻流被动接收三方系统数据(轻流开放的接口):Q-Source被动、OpenAPI添加数据

轻流主动拉取三方系统数据(对接三方系统的接口):Q-Source主动Q-linkerWebhook提醒推送

设置步骤

因为Q-Source被动是接收三方系统发送的数据到轻流,所以需要:

「1」三方系统配置发送的请求

「2」轻流Q-Source被动配置数据接收

一、三方系统的配置

1、**请求方法:**post

2、**请求地址:**该Q-Source被动的url

(在【应用编辑】-【添加流程】-「申请人」-「高级设置」-「添加来源」-Q-Source被动)

image.png

3、**请求体:**将想发送的数据,以JSON(或XML/正则表达式)格式进行发送

整体配置如下(以postman里的配置举例): 文档图片

二、轻流「Q-Source被动」的配置

1、根据三方系统发送的数据格式,选择对应的接收数据类型。

(JSON/XML/正则表达式,默认为JSON,如下图)

文档图片

例子:上面postman我们选的数据格式是JSON,所有这里我们也选JSON。

2、根据三方系统发送的数据内容,添加数据解析。

方法:点击添加后,左边选择想填充的字段,右边选择解析语法(默认JSON Path),然后写对应想解析的解析规则。

文档图片

例子:上面发送的内容为{"name":"贾胜强"},根据JSON Path语法,解析规则为$.name可以得到name的值:贾胜强(如下图)

文档图片

效果如下: 文档图片

文档图片

其他

一、赋值规则(详细见下表)

  1. 左边是单值类型,右边返回数组类型,默认选择数组中第一个值作为结果。
  2. 左边是多值类型,右边是数组类型,按照赋值规则进行匹配
  3. 申请人、成员以邮箱匹配;部门以文本直接匹配。
目前是否支持赋值规则这里以JSON格式数据举例
字段类型JSON格式数据对应解析规则
申请人纯文本按照email匹配当前工作区用户,不过滤申请人范围,申请人未设置rule,则设置为匿名用户{"answer":"esfesfse@qq.com"}$.answer
1:单行文字纯文本,不做格式校验{"answer":"a test"}$.answer
2:多行文字纯文本,不做格式校验{"answer":"a test"}$.answer
3:数字纯文本,不做格式校验{"number":13888888888}$.number
4:链接纯文本,不做格式校验{"picture":https://abc.123.com/fgh}$.picture
5:日期如果解析值可以转换成日期对象,则统一转换成’yy-mm-dd-hh:mm’格式,非法日期字符串则赋空值{"time":"2021-01-29"}$.time
6:起止时间‘~’符号分割,分割后解析规则同日期字段,如果有一个值无法解析,则整个答案赋空值{"time":"2021-01-08~2021-02-16"}$.time
7:手机纯文本,不做格式校验{"phone":"13888888888"}$.phone
8:邮箱纯文本,不做格式校验{"email":"8888888@qq.com"}$.email
9:单项选择按照选项内容匹配,不存在且允许选择[其他]选项,则向其他选项赋值,否则赋空值,选项重名则选择第一个{"opt":"未命名2"}$.opt
10:下拉选择按照选项内容匹配,不存在且允许选择[其他]选项,则向其他选项赋值,否则赋空值,选项重名则选择第一个{"value":"未命名3"}$.value
11:多项选择按照选项内容匹配,不存在且允许选择[其他]选项,则向其他选项赋值,否则赋空值。{"value": "未命名2"}{"value": ["未命名2","未命名3"]}$.value
12:图片选择根据[文本显示值]匹配,无匹配则赋空值{"value": "未命名2"}{"value": ["未命名2","未命名3"]}$. value
13:上传附件支持,传文件/资源的url;支持解析文件原名称仅传输文件,不解析文件原名称{"value":"https://file.abc/file/456f.png"}{"value":[ "https://file.abc/file/456f.png", "https://file.abc/file/456f.png" ]}传输文件同时解析文件原名称{"value":{"filePath":"https://file.abc/file/456f.png","fileName":"附件.jpg"}}$.value
14:地址字段支持,以空格隔开{“value”:“上海市 闵行区”}$.value
15:描述文字过滤//
16:富文本过滤//
17:段落过滤//
18:表格支持{“table”:[{“id”:“1”,“name”:“测试”},{“id”:“2”,“name”:“test”} ]}表格字段 $.table 表格子字段 $.id $.name
19:定位过滤//
20:数据关联纯文本,不做格式校验{"answer":"a test"}$.answer
21:成员字段纯文本按照[email]查询当前工作区用户,不存在则赋空值{"user":"esfesfse@qq.com"}{"user":["esfesfse@qq.com","12334@qq.com"]}$.user
22:部门字段纯文本按照[部门名称]查询当前工作去部门,重名部门则都赋值,不存在则赋空值{"value":"G测试部门"}{"value":["G测试部门","A部门"]}$.value
23:q-linker过滤//
24:文字识别支持,传文件/资源的url{"value":"https://file.abc/file/456f.png"}$.value

二、新增数据选择是否进入流程

功能效果:默认开启,关闭可只新增数据,不进入流程。

位置:「标题」下方

文档图片

三、更新数据

功能效果:设置判断条件后,当识别接收到的数据和已在轻流中的某条数据是同一条时,更新这条数据。

位置:「接收数据解析」下方,有个「更新数据」开关,默认关闭。

文档图片

除使用表单字段做筛选外,也可以使用数据ID(applyId)进行筛选。但是未设置applyId的path、path读取出的数据为空、读出的applyId值不是数字、读出的applyId不存在或对应数据已被删除、读出的对应数据不是当前应用的。都依旧为添加数据。

成员与部门匹配最新规则:


字段映射更新筛选
字段类型匹配规则历史数据匹配规则历史数据
成员成员(绑定邮箱)成员(绑定邮箱)成员(绑定邮箱)-
部门部门名称部门名称部门名称-

1732245913876.png请注意:

  1. 本「成员与部门匹配最新规则」功能仅限700版本。600版本用户在更新筛选时,成员和部门的匹配规则仍将基于内部ID。
  2. 对于历史配置中使用的内部ID配置,任务执行不受影响,但不再支持配置的修改。
  3. 对于更新筛选中用户和部门字段的内部ID关联,在浏览器端做隐藏处理,历史数据不处理。
  4. 系统不支持基于内部ID的配置修改,未来考虑增加使用外部ID进行数据交互。

四、白名单设置

点击插件中心->[Q-Source]的配置按钮可以配置「Q-Source被动模式」的白名单:

文档图片

当没有设置任何白名单ip的时候,「Q-Source被动模式」不校验来源ip(只校验源公网ip),当添加白名单ip之后,来自非白名单ip的Q-Source请求将被拒绝。

IP格式为标准点分十进制格式 最大为255.255.255.255最小为1.1.1.1

五、注意事项

1、如果表单某个字段设置了必填,则Q-Source被动收到的数据,必须设置该必填字段的解析,且确实有值。否则会添加失败。

(1)公有云用户:如果数据添加不成功,可通过「查询操作结果」接口,根据requestId查询操作结果,返回错误码40500表示Q-Source被动有必填字段未解析

(2)专有轻流用户:可自主选择Q_Source被动是否走消息队列,如果选择不走消息队列,在出现上述由于必填字段未解析导致添加数据失败的情况时,会直接返回错误信息。

2、Q-Source被动模式新增数据时:只有勾选「进入流程」才会触发流程外Q-Robot,否则不触发流程外Q-Robot。

3、专有轻流用户:Q-Source被动模式更新数据时,会触发流程外Q-Robot。

您也可以点击轻流学院的教学视频来学习如何使用Q-Source被动模式。

SP2 Q-Source配置详解