用户任务活动
为参与人创建任务
,需要参与人经过人工处理
之后,驱动工作流继续向后流动
JSON规范
用户任务活动
的JSON规范定义如下:
- 1{
- 2 id: 'activity_1',
- 3 name: 'Review',
- 4 type: 'activityUserTask',
- 5 options: {
- 6 assignees: {
- 7 users: null,
- 8 roles: null,
- 9 vars: null,
- 10 },
- 11 showAssignees: true,
- 12 confirmation: false,
- 13 confirmationAllowAppend: false,
- 14 bidding: false,
- 15 completionCondition: {
- 16 passed: 1,
- 17 rejected: '100%',
- 18 },
- 19 rejectedNode: null,
- 20 allowPassTask: true,
- 21 allowRejectTask: true,
- 22 allowCancelFlow: false,
- 23 allowRecall: true,
- 24 allowForward: false,
- 25 allowSubstitute: false,
- 26 schema: {
- 27 read: true,
- 28 write: false,
- 29 },
- 30 },
- 31},
名称 | 说明 |
---|---|
type | activityUserTask |
- options
名称 | 说明 |
---|---|
assignees | 指定该节点的参与人 |
showAssignees | 在流程进度 中是否显示还没有签收 的参与人信息,对于竞签 模式很有用。比如参与竞签的人数超过1,那么前一个节点只允许看到已经签收 的参与人 |
confirmation | 是否需要确认。当参与人数量超过1时,是否需要前一个节点进行确认 |
confirmationAllowAppend | 在进行参与人确认时,是否允许追加参与人 |
bidding | 是否竞签。竞签模式下,如果有多个参与人时,当其中一个参与人签收 任务后,其他参与人将不再参与流程任务 |
completionCondition | 完成条件:当有多位参与人时,判断当前节点完成的条件 |
rejectedNode | 当驳回时返回的节点,默认是前一个节点 |
allowPassTask | 是否显示通过 按钮 |
allowRejectTask | 是否显示驳回 按钮 |
allowForward | 是否显示转办 按钮 |
allowSubstitute | 是否显示代办 按钮 |
allowCancelFlow | 是否显示取消流程 按钮。一般在起草开始事件 节点设置为true,从而让起草人 可以取消流程 |
allowRecall | 该节点是否允许撤回 。如果当前节点的任务被签收 将禁止撤回 操作 |
schema.read | 指定该节点的字段查看权限 |
schema.write | 指定该节点的字段编辑权限 |
竞签/会签
当参与人数量大于1时,可以选择竞签
或者会签
,通过对以下几个参数的配置,可以精细指定竞签/会签
的行为:
assignees / showAssignees / confirmation / confirmationAllowAppend / bidding / completionCondition
assignees
指定节点参与人有三种方式
名称 | 说明 |
---|---|
users | 用户Id数组 |
roles | 角色Id数组 |
vars | 变量,比如:flowUser 代表流程发起人 |
completionCondition
可以分别配置通过
和驳回
的完成条件,哪个完成条件
先满足,均会导致该活动节点
完成,并推动流程向后执行
完成条件
有两种格式
名称 | 说明 |
---|---|
绝对值 | 比如:passed: 1 ,当有一个参与人通过 时,该活动节点 完成 |
百分比 | 比如:rejected: '100%' ,当所有参与人都拒绝 时,该活动节点 才完成 |
转办/代办
通过配置allowForward/allowSubstitute
来启用转办/代办
。被转办/代办
的任务如果没有被签收,则可以撤回
schema.read/schema.write
可以通过schema.read/schema.write
精确控制活动节点
参与人对原子数据
字段的读写权限
schema
有以下四种格式
0. 基础schema
在说明schema配置之前,先引用一个基础validator/schema
的概念
在模块的meta
文件中,每个原子类型
都有对应的validator/schema
配置,用于原子数据的前端渲染
和后端验证
。为便于说明,这一组validator/schema
配置,称之为基础schema
1. true/false
可以直接使用基础schema
对字段的读写权限
进行限定
名称 | 说明 |
---|---|
true | 使用基础schema |
false | 禁止字段权限 |
2. {module, validator}
与基础schema
类似,但是单独创建一组validator/schema
配置,用于对字段的读写权限
进行限定
名称 | 说明 |
---|---|
module | validator所属模块名称 |
validator | 验证器名称 |
3. {module, schema}
与基础schema
类似,但是单独创建schema
配置,用于对字段的读写权限
进行限定。系统仍然会以schema
配置为基础动态创建一个validator
用于字段的验证
名称 | 说明 |
---|---|
module | schema所属模块名称 |
schema | schema名称 |
4. 字段数组
可以直接指定可以读写的字段数组
,系统以基础schema
为基础,通过这些字段数组
自动组合成新的schema
配置
字段
配置有两种格式
名称 | 说明 |
---|---|
string | 指定字段名称,系统从基础schema 中取得字段的属性信息 |
object | 直接指定字段的属性信息 |
src/module/test-flow/backend/src/config/static/flowDef/set01_atomUserTask.js
- 1schema: {
- 2 write: [
- 3 'atomName',
- 4 {
- 5 name: 'description',
- 6 property: {
- 7 type: 'string',
- 8 ebType: 'text',
- 9 ebTitle: 'Description',
- 10 },
- 11 },
- 12 ],
- 13},
评论: