工作流控制模式-迭代模式3种

版权声明:工作流模式版权归 Workflow Patterns 组 织 ( http://www.workflowpatterns.com ) 所 有 。 经 Workflow Patterns授权,中文简体版由辛鹏和荣浩翻译。未经译者书面许可,不得将该中文简体版用于商业目的。

在流程实例执行时,因为各种原因,我们需要重复执行一些活动或路径。迭代模式讨论流程 实例里的重复行为。

迭代模式共有3种,如图A-47所示。

图A-47 迭代模式

  1. 任意循环:能够在流程里建立有多个入口和出口的循环。
  2. 结构化循环:能够重复执行活动或子流程。循环只有一个单一的入口和出口。
  3. 递归:活动在执行时能够递归调用它自己。

任意循环(WCP_10: Arbitrary Cycles)

描述

流程里的循环具有多个入口和出口。

如图A-48所示,发文流程,如果有领导审批不通过,就返回上一活动重新修改,这样多次往 复修改直到领导满意为止。

图A-48 任意循环

同义词

非结构化循环。

应用

该模式类似于程序里的“goto”,虽然很自然,但是给维护带来噩梦。在我们的项目里,当 用户第一次使用工作流系统进行流程建模时,最常见的情况就是任意循环大量出现,因为这种模 式最适合用户的自然思维,另一方面则是因为很多公司的流程人为干预太过严重,用户甚至要求 能够从任意活动回退到任意前续活动。我们建议这一模式尽量少用。

结构化循环(WCP_21: Structured Loop)

描述

能够重复执行活动或子流程。循环只有单一的入口和出口。该模式有图A-49和图A-50所示的 两种形式。

图A-49 结构化循环:while

图A-50 结构化循环:do while

前提条件

同一时间只能有一个该循环的实例运行。

应用
重复的执行活动直至满足一定的条件为止。与任意循环模式相比,该模式更加贴合计算机语 言,也更加容易被工作流系统所支持。

递归(WCP_22: Recursion)

描述

活动在执行时能够递归调用它自己。该模式反映出流程执行的层次性。

如图A-51所示,每个月底,公司统一对所有出差费用进行报销,财务部门发起一个报销流程, 同时,作为对应,每个部门都发起一系列的报销活动,这些报销活动具体到每个项目团队,每个 团队也都执行一系列的报销活动,这样就构成了一个多层次的递归调用关系,这个层次关系是组 织管理层次的映射。

图A-51 递归

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