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

规范

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

{
  id: 'activity_1',
  name: 'Review',
  type: 'activityUserTask',
  options: {
    assignees: {
      users: null,
      roles: null,
      vars: null,
    },
    showAssignees: true,
    confirmation: false,
    confirmationAllowAppend: false,
    bidding: false,
    completionCondition: {
      passed: 1,
      rejected: '100%',
    },
    rejectedNode: null,
    allowPassTask: true,
    allowRejectTask: true,
    allowCancelFlow: false,
    allowRecall: true,
    schema: {
      read: true,
      write: false,
    },
  },
},
名称 说明
type activityUserTask
  • options
名称 说明
assignees 指定该节点的参与人
showAssignees 流程进度中是否显示还没有签收的参与人信息,对于竞签模式很有用。比如参与竞签的人数超过1,那么前一个节点只允许看到已经签收的参与人
confirmation 是否需要确认。当参与人数量超过1时,是否需要前一个节点进行确认
confirmationAllowAppend 在进行参与人确认时,是否允许追加参与人
bidding 是否竞签。竞签模式下,如果有多个参与人时,当其中一个参与人签收任务后,其他参与人将不再参与流程任务
completionCondition 完成条件:当有多位参与人时,判断当前节点完成的条件
rejectedNode 当驳回时返回的节点,默认是前一个节点
allowPassTask 是否显示通过按钮
allowRejectTask 是否显示驳回按钮
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%',当所有参与人都拒绝时,该活动节点才完成

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

schema: {
  write: [
    'atomName',
    {
      name: 'description',
      property: {
        type: 'string',
        ebType: 'text',
        ebTitle: 'Description',
      },
    },
  ],
},