工作流控制模式-取消和强制完成模式5种

流程实例执行的过程中,不免会产生异常情况,这些异常情况包括了超时、资源不可用、外 部环境变化等,异常导致流程实例/活动执行的价值减少甚至浪费,在这种情况下,就涉及到流 程实例/活动执行的取消。

取消和强制完成模式共有5种,如图A-41所示。

图A-41 取消和强制完成模式

  1. 取消活动:取消流程实例中某一活动的执行。
  2. 取消流程实例:取消整个流程实例的执行。
  3. 取消区域:取消某一区域里所有正在执行的活动。
  4. 取消多实例活动:取消流程实例中某一多实例活动的执行。
  5. 强制完成多实例活动:强制完成流程实例中某一多实例活动的执行,强制流程向后流转。

取消活动(WCP_19: Cancel Task)

描述

取消一个已激活的活动,如果已经开始执行,那么停止执行,并且可能的话,移除正在运行 的工作项。

如图A-42所示,工程招标预审流程,招标公司进行资格的预审,需要两位评委完成评审评审 才结束,评审结果里只要有一个不通过则预审不通过。剩下一位评委的评审活动被取消。

图A-42 取消活动

取消流程实例(WCP_20: Cancel Case)

描述

取消一个正在执行中的流程实例。该流程实例被标识为未成功完成。

如图A-43所示,订单处理过程中顾客突然取消订单,那么停止该流程实例的执行。我们使用 终止结束事件结束流程实例。

图A-43 取消流程实例

取消区域(WCP_25: Cancel Region)

描述

一系统的活动建模成一个区域,流程实例执行时,可以对整个区域进行取消,区域中正在执 行或处于激活状态的活动被取消。这些活动可以位于不同分支上并互不连接。

如图A-44所示,双十一期间,很多商家处理订单的过程中发现缺货,于是取消整个订单处理 的子流程,给顾客发送消息通知。

图A-44 取消区域

取消多实例活动(WCP_26: Cancel Multiple Instance Activity)

描述

在一个流程实例里,可以对多实例活动进行取消:未完成的工作项被取消,已经完成的工作 项不受影响。

如图A-45所示,领导可以在发文传阅过程中取消发文,此时阅读文件的工作被取消,已经阅 读过的不受影响。

图A-45 取消多实例活动

强制完成多实例活动(WCP_27: Complete Multiple Instance Activity)

描述

在一个流程实例里,可以对多实例活动强制完成:未完成的工作项被取消,已经完成的工作 项不受影响,后续活动被触发。

如图A-46所示,领导要求科室负责人在当天完成文件的传阅,第二天早上进行正式发文,此 时阅读文件的工作被取消,已经阅读过的不受影响。

图A-46 强制完成多实例活动

小结

取消流程实例/活动经常与工作流异常相关,此时执行过的工作已经产生了一定的影响,为 了使流程实例能够继续执行(或通过其他路径继续执行)或正常停止,往往需要对已执行工作所 产生的影响进行消除,这就需要通过恢复动作(回滚与业务补偿)完成,我们将在附录D工作流 异常模式里详细讨论这些情况。

posted @ 2021-10-07 18:30  x3d  阅读(254)  评论(0编辑  收藏  举报