大多数业务流程都需要人工交互。 例如,批准,异常管理和一些其他相关操作可能需要人员。 他们还负责执行增强业务流程所需的活动。
jBPM在流程内支持不同类型的人工任务节点,用于对与人类用户的这种交互进行建模。 人工任务节点允许流程设计者定义人类角色需要执行的任务属性。 jBPM还包括一个后端服务,用于在运行时管理任务的生命周期。
要在流程中使用人工任务,我们需要三个组件 -
人工任务生命周期
从流程角度来看,只有在执行流程期间遇到用户任务节点时才会创建人工任务。 现在,只有在关联的人工任务完成或中止时,该流程才会离开用户任务节点。
人工任务本身具有完整的生命周期。 下图描述了人工任务生命周期。
新任务在“创建”阶段开始创建。 然后它将自动进入“准备”阶段。 这里的任务显示了允许执行任务的所有参与者的任务列表。 任务将保持在“就绪”阶段,直到其中一个参与者声明通知执行它。
用户声明任务后,状态将更改为“保留”阶段。 声明任务后,该用户可以决定开始执行任务。 在这种情况下,任务状态将更改为“InProgress”阶段。
最后,一旦执行了任务,状态就会变为“已完成”。 如果任务未完成,则用户还可以使用故障响应来指示该任务。 在这种情况下,状态将更改为“失败”。
人工任务服务允许很多其他生命周期方法,如 -
- 委派或转发任务。 在这种情况下,它被分配给另一个参与者。
- 撤销任务,任何特定的参与者都不再声明它,而是重新出现在所有潜在参与者的任务列表中
- 暂时挂起或恢复任务
- 停止正在进行的任务
- 跳过任务。 在这种情况下,任务将不会执行。