任务

在 BPMN 中,任务(task) 是流程中的一个原子活动,代表一个人或一个应用程序执行的工作。 任务是定义业务流程中工作单元的基本元素。

原子 是说在流程模型中已无法进一步分解。 如果一个活动可以解构为更小的单元,则应该使用一个 子流程

任务之间通过 顺序流 连接,定义流程中的执行顺序。

任务类型

BPMN 定义了不同类型的任务表示不同的行为和执行者。 任务类型通过任务图形左上角的符号区分。 任务类型包括:

抽象任务

一个没有特定类型的任务。 可以在任务的行为较模糊时使用。

抽象任务 的流程可以部署,但是流程引擎会忽略抽象任务。

用户任务

由人类用户在软件应用程序的帮助下执行。

服务任务

使用 Web 服务、自动化应用程序或通过其他服务执行任务。

手动任务

不使用任何流程引擎完成的任务。Jmix BPM 不支持

业务规则任务

向业务规则引擎提供输入并获取输出。

脚本任务

由业务流引擎通过执行一个预定义的脚本完成。

实体数据任务

在业务流程内处理 Jmix 实体。

发送电子邮件任务

在业务流程内发送电子邮件。

任务通用属性

任务 Id

任务的 Id 是自动生成的,一般没有特殊含义,可以将其改为有意义的内容。 这样可以更容易理解系统日志的内容。

任务命名

任务通常使用动词 + 对象的语法命名,例如“批准订单”或“发送发票”。

任务名的最大长度为 255 字符。

附加标记

任务可以使用标记以表示特殊的行为,例如:

循环

任务会需要一直重复,直到某个条件达成。Jmix BPM 不支持

多实例

任务需要并行或顺序执行多次。 参阅 多实例 部分的内容。

扩展属性

还可以为任务创建扩展属性:

extension properties

在 XML 中,扩展属性使用 jmix:property 定义:

<serviceTask id="service-task" name="Service Task" >
<!--    . . .   -->
<extensionElements>
<!--   . . .    -->
    <jmix:properties>
      <jmix:property name="color" value="red" /> (1)
    </jmix:properties>
  </extensionElements>
</serviceTask>
1  — 创建一个扩展属性。

执行监听器

可以为任务定义执行监听器:

create execution listner