用户任务活动为参与人创建任务,需要参与人经过人工处理之后,驱动工作流继续向后流动

JSON规范

用户任务活动的JSON规范定义如下:

  1. 1{
  2. 2 id: 'activity_1',
  3. 3 name: 'Review',
  4. 4 type: 'activityUserTask',
  5. 5 options: {
  6. 6 assignees: {
  7. 7 users: null,
  8. 8 roles: null,
  9. 9 vars: null,
  10. 10 },
  11. 11 showAssignees: true,
  12. 12 confirmation: false,
  13. 13 confirmationAllowAppend: false,
  14. 14 bidding: false,
  15. 15 completionCondition: {
  16. 16 passed: 1,
  17. 17 rejected: '100%',
  18. 18 },
  19. 19 rejectedNode: null,
  20. 20 allowPassTask: true,
  21. 21 allowRejectTask: true,
  22. 22 allowCancelFlow: false,
  23. 23 allowRecall: true,
  24. 24 allowForward: false,
  25. 25 allowSubstitute: false,
  26. 26 schema: {
  27. 27 read: true,
  28. 28 write: false,
  29. 29 },
  30. 30 },
  31. 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

  1. 1schema: {
  2. 2 write: [
  3. 3 'atomName',
  4. 4 {
  5. 5 name: 'description',
  6. 6 property: {
  7. 7 type: 'string',
  8. 8 ebType: 'text',
  9. 9 ebTitle: 'Description',
  10. 10 },
  11. 11 },
  12. 12 ],
  13. 13},