BPMN 规范

BPMN 规范

Task | 任务

Task 是一个极具威力的元素,它能描述业务过程中所有能发生工时的行为,它包括 User Task、Manual Task、Service Task、Script Task 等,可以被用来描述人机交互任务、线下操作任务、服务调用、脚本计算任务等常规功能。

  • User Task: 生成人机交互任务,主要被用来描述需要人为在软件系统中进行诸如任务明细查阅、填写审批意见等业务行为的操作,流程引擎流转到此类节点时,系统会自动生成被动触发任务,须人工响应后才能继续向下流转。常用于审批任务的定义。

  • Manual Task: 线下人为操作任务,常用于为了满足流程图对实际业务定义的完整性而进行的与流程驱动无关的线下任务,即此类任务不参与实际工作流流转。常用于诸如物流系统中的装货、运输等任务的描述。

  • Service Task: 服务任务,通常工作流流转过程中会涉及到与自身系统服务 API 调用或与外部服务相互调用的情况,此类任务往往由一个具有特定业务服务功能的 Java 类承担,与 User Task 不同,流程引擎流经此节点会自动调用 Java 类中定义的方法,方法执行完毕自动向下一流程节点流转。另外,此类任务还可充当“条件路由”的功能对流程流转可选分支进行自动判断。常用于业务逻辑 API 的调用。

  • Script Task: 脚本任务,在流程流转期间以“脚本”的声明或语法参与流程变量的计算,目前支持的脚本类型有三种:juel(即 JSP EL)、groovy 和 JavaScript。在 Activiti5.9 中新增了 Shell Task,可以处理系统外部定义的 Shell 脚本文件,也与 Script Task 有类似的功能。常用于流程变量的处理。