zoukankan      html  css  js  c++  java
  • 工作流数据模式-可见性模式8种

    共有8种可见性模式,它们建立起不同工作流组件级别的变量作用范围。

    图C-12 工作流数据可见性模式

    1. 活动变量:在单个活动上定义变量,变量的作用范围为该活动。
    2. 块活动变量:在块活动上定义变量,变量的作用范围为块活动所包含的所有子活动。
    3. 活动范围变量:为一定范围内的活动定义变量,变量的作用范围为范围内的所有活动。
    4. 多实例变量:在多实例活动上定义变量,变量的作用范围为所有属于该活动的工作项。
    5. 流程实例变量:为流程实例定义变量,变量的作用范围为该流程实例里所有的活动。
    6. 文件夹变量:定义变量集合,当启动流程实例时,流程实例与该变量集合绑定,变量的作用范围为所有共享该变量集合的流程实例。
    7. 流程定义变量:为流程定义定义变量,变量的作用范围为所有属于该流程定义的流程实例。
    8. 环境变量:变量是应用级别的业务数据、跨业务系统的数据。

    活动变量(WDP_1: Task Data)

    描述

    活动能够定义变量,在一个流程实例里,该变量只能被其活动实例所使用。

    图C-13 活动级别的数据可见性

    活动变量与业务数据权限控制
    在应用工作流系统时,我们经常碰到这样的问题:一个流程实例中的不同活动对业务数据拥 有不同的权限,如图C-14所示。

    图C-14 与流程相关的业务数据权限

    在执行请假申请活动时,申请者编辑请假人、天数和原因3个字段;而到审批活动时,审批 者增加了一个可编辑的审批意见字段,但其余3个字段变为只读字段。我们将这类问题统称为与 流程相关的业务数据权限控制。

    此时,我们在业务系统里引入业务权限角色的概念,通过该角色隔离开工作流系统与业务数 据权限,即业务数据权限的管理属于业务系统范围(由业务系统实现)。在定义好业务系统的权 限角色后,我们通过活动级别的变量将流程中的具体活动与业务权限角色绑定,这样就实现了流 程活动与业务数据权限的挂接,同时又保持了工作流系统的单一职责。

    图C-15 流程相关的业务数据权限控制

    块活动变量(WDP_2: Block Data)

    描述

    块活动能够定义变量,在一个流程实例里,其所包含的子活动实例能够使用这些变量。

    图C-16 块活动级别的数据可见性

    应用

    在块活动为子流程的情况下,块活动级别变量最重要的职责就是初始化子流程实例:在父流 程实例里为子流程实例的第一个活动指定参与者,传递子流程实例所必需的业务数据。

    活动范围变量(WDP_3: Scope Data)

    描述

    一定的活动范围能够定义变量,在一个流程实例里,该范围所包含的活动实例能够使用该 变量。

    图C-17 活动范围级别的数据可见性

    活动范围和子流程在概念上比较相似,都是包含一系列的子活动,它们之间的差别在于:子 流程具有比较独立的上下文(例如子流程由另外一个部门执行)和执行环境,能够复用,而活动 范围则是对流程中活动的一种分组,脱离开当前流程的上下文,这些活动无法执行。

    多实例变量(WDP_4: Multiple Instance Data)

    描述
    多实例活动能够定义变量,在一个流程实例里,该活动的每一个工作项都能够初始化该变量, 并独立使用。

    什么情况下会应用到多实例活动?当一个活动需要多人共同参与并且实际执行过程中互不 影响时,我们会使用多实例活动对该业务场景进行建模。重要的有两点:一是每个工作项一定具 有相同的业务上下文;二是执行过程各自独立。对多实例活动而言,最重要的就是在各个工作项 执行完毕后进行数据的汇总。根据不同的业务场景,汇总策略不同。例如在企业决策里,当多人 同时决策时,采取少数服从多数;而在进行员工某项关键技能考核时,采用一票否决制。

    图C-18 多实例活动级别的数据可见性

    流程实例变量(WDP_5: Case Data)

    描述

    流程定义能够定义变量,在一个流程实例里,该流程实例中的所有活动实例都能够使用这些 变量。

    图C-19 流程实例级别的数据可见性

    应用

    流程实例变量是应用最广泛的工作流变量,一方面是因为很多工作流系统只支持流程实例级 别的工作流变量,另一方面是整个流程实例所共享的上下文依赖于流程实例变量的建立,存在两 个最重要的流程实例变量:一个是业务领域模型的唯一标识符ID,另外一个是该领域模型对应业 务表单的URL。

    文件夹变量(WDP_6: Folder Data)

    描述

    流程定义能够定义一组变量,我们把这些变量的集合称为文件夹,当启动一个流程实例时, 流程实例能够与这些变量绑定,一旦绑定,该流程实例里的所有活动实例就能够使用该文件夹里 的变量。

    图C-20 文件夹级别的数据可见性

    应用

    不同的流程实例之间能够选择性的共享数据。如建立与流程相关的知识库应用。如图C-21 所示。

    图C-21 使用文件夹变量建立活动与知识库的关联

    流程定义变量(WDP_7: Workflow Data)

    描述

    流程定义能够定义变量,所有属于该流程定义的流程实例都能使用这些变量,这些变量在其 所有流程实例的活动间是共享的。

    图C-22 流程定义级别的数据可见性

    环境变量(WDP_8: Environment Data)

    描述

    流程实例里的活动能够在运行期使用外部环境的变量,这里的外部环境包括了外部数据仓库 (数据库)、外部应用和外部服务等。

    图C-23 环境级别的数据可见性

    应用

    该模式强调工作流系统的集成能力,工作流系统在执行时需要具备从外部获取和交换数据的 能力。

    本文来源:http://www.cnblogs.com/x3d/,转载请注明。
  • 相关阅读:
    MYSQL-----IFNULL()函数的用法
    《你的灯亮着吗?》读书笔记
    《测试架构师修炼之路》阅读笔记第三章
    未记录书名的一本营销书阅读记录
    Spring注解@Component、@Repository、@Service、@Controller区别
    PropertyPlaceholderConfigurer的用法:
    Jackson Streaming API to read and write JSON
    ParameterizedType的作用
    setTimeOut传参数(转)
    mybatis使用count返回int的方法
  • 原文地址:https://www.cnblogs.com/x3d/p/15450993.html
Copyright © 2011-2022 走看看