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

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

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

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

图A-47 迭代模式

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

任意循环(WCP_10: Arbitrary Cycles)

描述

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

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

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

图A-48 任意循环

同义词

非结构化循环。

应用

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

结构化循环(WCP_21: Structured Loop)

描述

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

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

图A-49 结构化循环:while

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

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

前提条件

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

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

递归(WCP_22: Recursion)

描述

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

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

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

图A-51 递归

相关文章:

  • 2021-07-21
  • 2021-11-08
  • 2021-06-23
  • 2021-10-16
  • 2021-12-20
  • 2021-09-24
  • 2022-01-04
  • 2021-08-10
猜你喜欢
  • 2021-07-19
  • 2021-12-26
  • 2021-12-05
  • 2022-02-05
  • 2021-12-30
  • 2021-10-03
  • 2021-10-29
相关资源
相似解决方案