用户任务活动为参与人创建任务,需要参与人经过人工处理之后,驱动工作流继续向后流动
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},
评论: