本主题仅适用于 IBM Business Automation Workflow Advanced 配置。

子任务的生命周期

Draft comment:
This topic only applies to BAW, and is located in the BAW repository. Last updated on 2025-01-20 10:38
当人员需要将分配给他们的部分工作委托他人完成,但希望保留对整体结果的控制权时,可以借助于子任务。 子任务还可用于调用支持服务,以帮助人员完成所处理的任务。

第一个子任务启动时,父任务将进入“正在等待子任务”子状态。 父任务将一直处于此子状态,直至所有子任务都到达某种结束状态(“已完成”、“已失败”、“已失效”或“已终止”)。 父任务的某些生命周期操作(状态更改)会传播给其子任务。 因此,当父任务暂挂、恢复、终止、删除或失效时,其所有子任务也将暂挂、恢复、终止、删除或失效。 父任务的“已升级”子状态不会传播;父任务升级时,子任务不会升级。 子任务有其自己的升级,并且仅当触发其自己的某个升级时,才会设置其“已升级”子状态。

可以对子任务执行下列操作:
  • 始终支持与父任务不冲突的操作。 这些是诸如申领、取消申领、完成、创建和启动子任务或进一步的后续任务之类的操作。
  • 子任务可能会失效。
  • 子任务可能会因为需要停止对某个子任务的处理而暂挂和恢复(尽管对父任务的处理将继续进行)。
  • 子任务可以终止。
  • 子任务可以具有其自己的升级,以便父任务所有者和子任务发起者可以更好地控制子任务的进度。

对子任务的某些生命周期操作可能与父任务的生命周期操作冲突,因此不被允许。 这些主要是影响子任务生命周期的结束并需要与父任务进行协调的操作。 对于作为子任务启动的任务,将忽略自动删除设置。 删除或重新启动父任务时,将删除其子任务。 不支持使用 Business Process Choreographer API 来删除单独的子任务。

示例:父任务与协作任务之间的交互

下图显示了具有人工任务活动的子任务的书籍发布流程。
书籍发布流程具有人员任务活动 "复审书籍"。 此任务具有 3 个子任务,用于对部件 1 ,部件 2 和附录进行复审。

在书籍发布过程中, Linda 会声明 Review Book 任务。 她意识到独自审查此书对于她来说工作量太大,而且需要专业知识才能审查此书的某些部分。 她决定不采用标准发布流程,而是将任务的一些部分委托一些同事完成。 她根据 Review book section 模板创建另外三个任务: Review Part 1Review Part 3Review Appendix。 她自己将审查此书的第 2 部分。

她将整本书包含为子任务的输入,以便她的同事有足够的上下文信息,但她对任务描述添加了注释,以通知各位同事只需审查该书的指定部分。 她将这些任务分配给她的同事:John 审查第 1 部分,Cindy 审查第 3 部分,Mary 审查附录。 然后,她将这三个任务作为自己的 Review Book 任务的子任务启动。 她的先前处于“已申领”状态的任务将进入“正在等待子任务”子状态,直到所有三个子任务都完成为止。

Cindy、John 和 Mary 申领其子任务并开始审查所负责的书籍部分。 与此同时,Linda 审查该书的第 2 部分。 当她完成所负责的审查部分后,她将检查各位同事的进度。 Cindy 和 John 已完成其审查工作,但 Mary 仍在审查篇幅较大的附录。 Linda 的任务仍处于“正在等待子任务”子状态。 虽然 Linda 无法完成其任务,但她开始根据 Cindy 和 John 的子任务输出来合并审查意见。

与此同时, Mary 也完成了她的子任务, Linda 的 Review Book 任务会离开 "等待子任务" 子状态。 现在,Linda 将 Mary 的审查意见与该书其余部分的审查意见合并,从而完成她的任务。 该书籍发布流程将继续进行。 由于 Review Book 任务是内联人员任务,因此在删除 BPEL 流程实例时,会将其与其子任务一起删除。

示例:父任务与调用任务之间的交互

父任务与调用任务之间的交互类似于父任务与协作任务之间的交互。 任务所有者将根据现有的调用任务模板创建任务,然后将其作为她自己的任务的子任务启动。 父任务将进入“正在等待子任务”子状态,并等待调用子任务返回。 子任务完成时,父任务会离开“正在等待子任务”子状态,并且可以完成。