返回

一文解析串行流程,camunda工作流之UserTask用户任务

后端

UserTask 用户任务:串行流程的基石

在 Camunda 工作流中,UserTask 用户任务是一种专用于在流程中引入人机交互的元素。它扮演着串行流程中的关键角色,确保只有在指定用户完成任务后,流程才能继续执行。

构建一个简单的串行流程

让我们以三国为背景,构建一个简单的串行流程,其中涉及将军、军师和主公三个角色:

  1. 将军: 负责制定作战计划。
  2. 军师: 负责审查作战计划。
  3. 主公: 负责批准作战计划。

该流程的步骤如下:

  1. 将军制定作战计划。
  2. 将军将作战计划提交给军师。
  3. 军师审查作战计划。
  4. 军师将审查结果提交给主公。
  5. 主公批准作战计划。
  6. 作战计划执行。

UserTask 用户任务在串行流程中的作用

在此流程中,UserTask 用户任务主要出现在以下步骤:

  1. 将军将作战计划提交给军师。
  2. 军师将审查结果提交给主公。
  3. 主公批准作战计划。

这些步骤需要人员处理,只有当相关人员完成任务后,流程才能继续执行。

UserTask 用户任务的配置

在 Camunda 工作流中,可以使用 BPMN(业务流程建模符号)配置 UserTask 用户任务。BPMN 是一种标准的流程建模语言,用于设计和业务流程。

在 BPMN 中,UserTask 用户任务通常用一个矩形框表示,矩形框内包含一个用户图标。

配置选项

在 UserTask 用户任务的属性中,可以配置以下信息:

  • 任务名称: 任务的名称。
  • 任务 任务的。
  • 任务分配方式: 任务的分配方式,可以是单人分配、多人分配或组分配。
  • 任务超时时间: 任务的超时时间。如果在超时时间内任务没有完成,则任务将被取消。
  • 任务表单: 任务表单,用于收集任务相关的数据。

UserTask 用户任务的处理

当一个 UserTask 用户任务被分配给用户后,用户可以通过以下方式处理任务:

  • 打开任务: 用户可以通过 Camunda 工作流的 Cockpit 界面或其他客户端打开任务。
  • 查看任务详情: 用户可以查看任务的名称、描述、分配方式、超时时间、任务表单等信息。
  • 处理任务: 用户可以处理任务,并提交任务表单。
  • 完成任务: 当任务处理完成后,用户可以完成任务。

代码示例

以下 BPMN XML 片段展示了一个简单的 UserTask 用户任务:

<bpmn:UserTask id="task1" name="Submit作战计划">
  <bpmn:incoming>Flow_1</bpmn:incoming>
  <bpmn:outgoing>Flow_2</bpmn:outgoing>
  <bpmn:candidateUsers>user1</bpmn:candidateUsers>
</bpmn:UserTask>

常见问题解答

  • UserTask 用户任务可以并行执行吗?
    • 否,UserTask 用户任务本质上是串行的,这意味着在流程中必须按顺序完成。
  • 如何设置任务分配方式?
    • 可以通过指定候选用户、候选组或使用表达式动态分配任务来配置任务分配方式。
  • 如何处理超时任务?
    • 可以配置任务超时时间,如果在超时时间内任务没有完成,则任务将被取消。
  • 如何收集任务数据?
    • 可以使用任务表单收集与任务相关的数据。表单可以是自定义的,并且可以包括各种字段类型。
  • UserTask 用户任务可以在不同的流程中重用吗?
    • 是的,UserTask 用户任务可以创建为子流程,并可以在不同的流程中重用。

结论

UserTask 用户任务是 Camunda 工作流中一种基本元素,用于实现串行流程并引入人机交互。通过理解 UserTask 用户任务的作用、配置和处理,您可以构建高效且可控的业务流程。