Appearance
工作流触发方式
工作流提供了多种触发方式,每种触发方式都对应特定的使用场景,当满足触发规则后,工作流就会被执行

1.表单事件
当发生了新增记录、编辑记录、删除记录、查看记录等表单事件时,触发对应的工作流程

注意
本平台提供灵活的前触发方式,即:执行操作前触发对应工作流
1.1 新增记录前触发
创建表单记录前触发对应工作流(此时表单记录还未保存到表单中)。常用于对提交记录进行数据检查等,当流程执行中断时记录不会被保存
场景说明
新增客户表记录前,需要校验新增的客户是否已存在于系统中(为了演示说明,没有使用唯一字段)
工作流配置如下

效果示例

1.2 新增记录后触发
表单记录创建之后触发对应工作流,此时表单记录已存在于表单中。常用于提交审批申请等,需要对审批单据进行留底
点击查看新增记录后触发示例
1.3 编辑记录前触发
编辑表单记录前触发对应工作流(此时表单记录还未被更改) 。如果需要对编辑操作进行审批,最好使用此方式,流程执行完成后才会更改记录
场景说明
修改客户表的客户信息前,必须要审批通过以后才能修改
注意
如果表单中包含了子表字段,则触发节点中的子表字段将被拆分为4部分
- 全量:包含了子表的全部记录(如有修改,则是修改后的全部记录)
- 新增:包含子表新增的记录
- 编辑:包含子表编辑的记录
- 删除:包含子表删除的记录

1.4 编辑记录后触发
编辑表单记录后触发对应工作流(此时表单记录已被更改) 。常用于修改记录后同步修改其他表单的数据记录
场景说明
修改客户表的客户信息后,需要将修改后的客户信息同步到其他关联表单中
注意
如果表单中包含了子表字段,则触发节点中的子表字段将被拆分为4部分
- 全量:包含了子表的全部记录(如有修改,则是修改后的全部记录)
- 新增:包含子表新增的记录
- 编辑:包含子表编辑的记录
- 删除:包含子表删除的记录

1.5 删除记录前触发
删除表单记录前触发对应工作流(此时表单记录还 未被删除 )
场景说明
此方式多用在需要删除校验的地方。例如:
已审核的单据,不允许被删除。即,检测到单据状态为已审核时,直接中断工作流。
1.6 删除记录后触发
删除表单记录后触发对应工作流(此时表单记录 已被删除 )
场景说明
此方式多用在下游单据被删除后,需要重置或者调整上游单据的时候。例如
采购入库单被删除后,需要修正采购订单的入库信息。
1.7 查看记录后触发
用户点击并查看了记录的详细信息后,触发对应工作流
1.8 打印记录前触发
用户勾选需要打印的数据记录,并在执行打印任务前,会触发对应工作流
提示
多用于:记录打印次数、判断是否允许打印等
2.按钮点击
按钮点击工作流不能直接创建,当创建表单功能按钮后会自动创建一条按钮对应的工作流。点击按钮后触发按钮对应的工作流
2.1 对视图启用
对视图启用的按钮,选择记录并执行按钮后,触发节点会包含选择记录的数据以供后续节点使用
注意
当按钮设置了二次弹窗,并修改了字段数据后,以修改后的字段数据作为触发节点参数

注意
如果表单中包含了子表字段,则触发节点中的子表字段将被拆分为4部分
- 全量:包含了子表的全部记录(如有修改,则是修改后的全部记录)
- 新增:包含子表新增的记录
- 编辑:包含子表编辑的记录
- 删除:包含子表删除的记录

2.2 对表单启用
对视图启用的按钮因为不会选择记录,所以不会包含记录的数据。但如果设置了二次弹窗,则会包含二次弹窗设置的字段数据
场景说明
此类工作流,常用于对表单数据批量化处理。例如:修复表单的某个字段数据
3.日期字段
选择表单中的某个日期类型字段,当到达此日期时,触发对应工作流
注意
记录中日期字段的值被修改后,达到修改后的日期时,流程也会执行
目前暂不支持设置子表中的日期字段

3.1 开始执行时间
除了可以设置到达时间时执行,还支持到达时间前或到达时间后执行

3.2 触发节点数据
后续节点可以选择到日期字段所在记录的字段数据

4.循环定时
设置循环间隔时间后,将按照间隔时间循环执行工作流程

4.1 循环类型
系统提供了以下循环类型
- 按分钟循环:
每n分钟执行,例:每10分钟执行 - 按小时循环:
每n小时执行,例:每1小时执行 - 按天循环:
每n天的y时间执行,例:每2天的12:00执行 - 按星期循环:
每n周,在周y的z时间执行,例:每1周,在周1的8:00执行 - 按月循环:
在n月,的y号的z时间执行,例:在6、12月,的1号的8:00执行
4.2 开始/结束执行时间
选择工作流开始/结束执行的时间,如果结束执行时间不存在则会无限执行下去
4.3 测试/正式环境启用
系统允许此工作流单独在 测试 / 正式 中启用
5.Webhook触发
每一个Webhook触发工作流都会自动生成对应的链接地址,其他系统可以通过调用此链接地址触发工作流,并获取返回值

5.1 Webhook地址
系统自动生成Webhook链接地址,其中正式环境和测试环境的链接地址不同,调用后会触发不同环境下的工作流
提示
同时也支持自定义接口名称,自定义接口名称让接口调试更方便
特别说明
webhook地址均支持直接搜索,方便快速定位对应流程

5.2 安全设置
为了保证请求及数据安全,本平台提供了以下安全设置
启用IP白名单
仅白名单内的IP允许访问

启用签名校验
请求方使用秘钥构建签名,然后携带签名进行接口请求,本平台收到请求后进行签名校验,校验通过后执行工作流

5.3 参数模板
Webhook链接仅支持使用json格式的参数,导入json模板可以自动生成节点参数

设置了参数模板后,后续节点则可以使用此参数

5.4 数据返回节点
Webhook触发方式的工作流,可以增加数据返回节点用于返回数据给调用方
特别说明
通过webhook触发添加的数据返回节点,将返回表单记录的原始数据,以下特殊字段进行说明
| 控件类型 | 返回值 | 详细说明 |
|---|---|---|
| 日期 | 返回日期对应的时间戳 | 假设日期为:2020-10-01 00:00:00,则对应的时间戳为:1601481600000 |
| 单选 | 返回选项对应的选项ID、选项值、选项颜色 | 例如:{"choiceId": "001", "choiceValue": "选项001", "choiceColor": "rgb(203, 65, 65)"} |
| 多选 | 返回选项的数组(选项结构与单选一致) | 例如:[{"choiceId": "002", "choiceValue": "北京"}, {"choiceId": "001", "choiceValue": "中国"}] |
| 多选 | 返回选项的数组,选项结构为选项ID、选项值(注意:最后的选项在第一位置) | 例如:{"rowIds": ["zi7VyzSOgMa0Pd","zi7VxQVFMoK0PI"]} |
| 关联记录 | 返回关联的记录的记录ID列表 | 例如:{"rowIds": ["zi7VyzSOgMa0Pd","zi7VxQVFMoK0PI"]} |
| 图片 | 返回图片列表(compressedPic表示压缩图,originalPic表示原图) | 例如:[{"originalPic": "zro94O8WZ600RM.jpeg","compressedPic": "zro94O8WZ600RM.jpeg"}] 注意1:如果是系统内的图片则仅包含文件名,需要拼接为完整的URL后使用。拼接方式为: http[s]://域名地址/api/oss/download/图片文件名注意2:如果是系统外的图片则包含完整链接,直接使用即可 |
| 附件 | 返回附件列表(|为分隔符,|前为文件存储名称,|后为文件实际名称) | 例如:["a_zog3F3jg4ZM0Rx.docx|a.docx"] 注意1:如果是系统内的附件则为上述结构,需要拼接为完整的URL后使用。拼接方式为: http[s]://域名地址/api/oss/download/文件存储名称(文件存储名称为|前面的部分)注意2:如果是系统外的附件则包含完整链接,不包含 |,直接使用即可 |
| 手写签名 | 返回签名图片地址(与图片控件一致) | 例如:"zro94O8WZ600RM.jpeg" |
| 定位 | 返回位置信息(LL表示经纬度,第一个值为经度,第二个值为纬度) | 例如:{"LL": [104.0697610192558, 30.494733080651223],"address": "四川省成都市双流区"} |
| 时刻 | 返回当前时刻距零点的毫秒数 | 例如:01:00 对应 3600000 |
| 部门单选 | 返回部门ID | 例如:"zkgjvf52Wq806X" |
| 部门多选 | 返回部门ID列表 | 例如:["zkgjvf52Wq806X"] |
| 归属部门 | 返回部门列表(包含部门ID、部门标签ID列表) | 例如:[{"departmentId": "zkqCpBfyu4O06Y","positionIds": ["acLDODz5DW07G"]}] |
| 成员单选 | 返回成员ID | 例如:"aAhjMlO4Jc04O" |
| 成员多选 | 返回成员ID列表 | 例如:["aAhjMlO4Jc04O"] |
| 归属成员 | 返回成员ID列表 | 例如:["aAhjMlO4Jc04O"] |
提示
当需要返回原始数据时,需要设置数据返回节点的参数名为:ORIGINAL_VALUE,并勾选使用参数名作为字段名
配置示例

返回示例


6.成员事件
当组织下的成员发生:加入组织、移除成员等成员事件后,触发对应的工作流程

后续节点能够选择到成员事件触发节点的参数

7.部门事件
当组织下的部门发生:新建部门、编辑部门、删除部门等部门事件后,触发对应的工作流程

后续节点能够选择到部门事件触发节点的参数
触发节点包含的参数字段
- 上级部门:【单个部门】当前部门的直接上级部门
- 前置部门:【单个部门】当前部门的前置部门(按从上至下排序)
- 当前部门:【单个部门】当前新增、编辑、删除的部门
- 部门名字:【文本】当前部门名称
8.业务流程
业务流程接受调用方传入的“输入参数”,然后在中间过程处理业务逻辑,并在流程结束时返回“输出参数”给调用方
提示
业务流程可以看做是一个数据工厂
“输入参数”是工厂的原料,工厂内部对“输入参数”进行加工处理,最后返回处理结果“输出参数” 。所以可以将一些通用的处理流程封装起来,需要使用时只需要调用这些流程就行了
以下为业务流程的使用场景
- 表单控件调用:表单的流程调用控件调用,可以实现复杂逻辑处理
- 页面组件调用:
页面统计组件设置数据来源为业务流程,可以实现复杂业务场景下的报表统计 - 其他流程调用:工作流的业务流程组件调用,可以实现程中调用其他流程
8.1 输入参数
业务流程作为统一的业务处理流程,可以被多个调用方使用。不同的调用方需要按输入参数模板传入对应的数据后,调用并执行业务流程
可以选择任意类型的字段作为输入参数

需要传递多个记录时,使用子表字段

可以设置参数字段为必填
设置为“必填”的字段,则调用业务流程时必须传递对应字段的值
8.2 输出参数
业务流程中可以添加数据返回节点,用于向调用方返回处理结果
