• 工作流控制模式-迭代模式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 递归

    本文来源:http://www.cnblogs.com/x3d/,转载请注明。
  • 相关阅读:
    解压tar.gz文件报错gzip: stdin: not in gzip format解决方法
    通过 HTTP 头进行 SQL 注入(转)
    Android涉及到的设计模式(转)
    初探Java8中的HashMap(转)
    substance的使用示例(转)
    大数据量下高并发同步的讲解(不看,保证你后悔)(转)
    HDU 4812 D Tree 树分区+逆+hash新位置
    在weblogic11g发布该项目时遇到错误(不支持web-app_3_0)
    highchart几个图表马金摘要
    android 使用 service 实现音乐
  • 原文地址:https://www.cnblogs.com/x3d/p/15376685.html
Copyright © 2020-2023  润新知