`
ronghao
  • 浏览: 457122 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
E9473dd5-1985-3883-ac98-962354ca10b3
张小庆,在路上
浏览量:8808
社区版块
存档分类
最新评论

工作流流程状态管理及变迁

阅读更多

这是我们(东方易维)工作流产品设计过程中采取的设计:

一、流程实例的状态

   状态分为 5种:实例化、执行中、挂起、手工结束、正常结束。

   状态的变迁如下图:


<!---->

二、节点实例的状态

状态分为 5种:实例化、执行中、挂起、手工结束、正常结束。

状态的变迁如下图:


<!---->

三、具体节点的状态

   细分:

A、人工节点、等待节点

这两个节点被触发后存在一个执行等待的过程,所以可以被用户直接挂起和手工结束。人工节点的挂起意味着所有未完成工作项的挂起,同时相应时间服务的时间计算的挂起。手工结束会使流程跳过该节点(所有工作项手工结束),继续往后流转。

B、开始节点、结束节点、分支节点、自动节点

这些节点的特点在于被触发后立刻执行和流转,所以不会存在挂起和手工结束的状态。

C、并发节点、汇聚节点

并发节点和汇聚节点不存在挂起的状态,同时不能被用户直接手工结束,它们的状态受流程实例状态和相关节点实例状态的影响。

并发节点和汇聚节点的情况复杂一些,分模式讨论


<!---->

1

1、同步汇聚(图 1

根据情况触发节点 0、节点 1、节点 2中的一个或多个,汇聚节点等待所有实际触发的节点完成后再执行流转。中间汇聚节点只会产生一个实例。

1.1、正常流转时的处理策略

当汇聚节点未被触发时(即节点 0、节点 1、节点 2都未执行结束),并发节点处于执行状态,一旦汇聚节点被触发(即节点 0、节点 1、节点 2有一个执行结束),并发节点正常结束并且汇聚节点处于执行状态,所有并发出的节点实例执行结束后,汇聚节点正常结束,流程继续流转。

1.2、用户挂起、手工结束相关节点的处理策略

1.2.1、汇聚节点未激活时

节点 0、节点 1、节点 2的挂起和恢复执行不会影响并发节点的状态(依旧处于执行状态);节点 0、节点 1、节点 2的任一手工结束都会触发汇聚节点,使并发节点正常结束,如果所有并发的节点实例都结束(包括手工结束和正常结束),汇聚节点正常结束,触发流程流转。

1.2.2、汇聚节点已激活时

节点 0、节点 1、节点 2的挂起和恢复执行不会影响汇聚节点的状态(依旧处于执行状态);节点 0、节点 1、节点 2的手工结束会影响汇聚节点的状态,每个节点实例的手工结束会引起汇聚节点的判断,如果所有并发的节点实例(包括正常结束和手工结束)都结束,汇聚节点正常结束,触发流程流转。

1.3、用户挂起、手工结束流程的处理策略

1.3.1、汇聚节点未激活时

流程的挂起和恢复执行不会影响并发节点的状态(依旧处于执行状态),节点 0、节点 1、节点 2会被全部挂起或恢复;流程的手工结束会引起所有节点的手工结束。

1.3.2、汇聚节点已激活时

流程的挂起和恢复执行不会影响汇聚节点的状态(依旧处于执行状态),节点 0、节点 1、节点 2未执行结束的实例会被全部挂起或恢复;流程的手工结束会引起所有节点的手工结束。

2、nOutOfM汇聚(图 1

根据情况触发节点 0、节点 1、节点 2中的一个或多个,汇聚节点等待 N个实际触发的节点完成后即执行流转( N>0 N<M M为实际触发的节点个数),在 N<=0 N>=M的情况下即为同步汇聚。中间汇聚节点只会产生一个实例。

2.1、正常流转时的处理策略

当汇聚节点未被触发时(即节点 0、节点 1、节点 2都未执行结束),并发节点处于执行状态,一旦汇聚节点被触发(即节点 0、节点 1、节点 2有一个执行结束),并发节点正常结束并且汇聚节点处于执行状态, N个并发出的节点实例执行结束后,汇聚节点正常结束,流程继续流转, M-N的节点实例被手工结束。

2.2、用户挂起、手工结束相关节点的处理策略

2.2.1、汇聚节点未激活时

节点 0、节点 1、节点 2的挂起和恢复执行不会影响并发节点的状态(依旧处于执行状态);节点 0、节点 1、节点 2的任一手工结束都会触发汇聚节点,使并发节点正常结束,如果 N个并发的节点实例都手工结束,并发节点正常结束,触发汇聚节点,汇聚节点正常结束,触发流程流转, M-N的节点实例被手工结束。

2.2.2、汇聚节点已激活时

节点 0、节点 1、节点 2的挂起和恢复执行不会影响汇聚节点的状态(依旧处于执行状态);节点 0、节点 1、节点 2的手工结束会影响汇聚节点的状态,每个节点实例的手工结束会引起汇聚节点的判断,如果 N个并发的节点实例(包括正常结束和手工结束)都结束,汇聚节点正常结束,触发流程流转, M-N的节点实例被手工结束。

2.3、用户挂起、手工结束流程的处理策略

2.3.1、汇聚节点未激活时

流程的挂起和恢复执行不会影响并发节点的状态(依旧处于执行状态),节点 0、节点 1、节点 2会被全部挂起或恢复;流程的手工结束会引起所有节点的手工结束。

2.3.2、汇聚节点已激活时

流程的挂起和恢复执行不会影响汇聚节点的状态(依旧处于执行状态),节点 0、节点 1、节点 2未执行结束的实例会被全部挂起或恢复;流程的手工结束会引起所有节点的手工结束。

3、辨别汇聚(图 1

nOutOfM汇聚的特例, N=1

4、多实例汇聚(图 2


<!---->

2

根据情况触发节点 0、节点 1中的一个或多个,节点 0和节点 1任意一个执行结束后都会触发汇聚节点产生一个新的实例,汇聚节点实例紧接着触发节点 2,节点 2也会产生多个实例。

4.1、正常流转时的处理策略

当汇聚节点未被触发时(即节点 0、节点 1都未执行结束),并发节点处于执行状态,一旦汇聚节点被触发(即节点 0、节点 1有一个执行结束),汇聚节点会紧接着触发节点 2,汇聚节点正常结束。所有并发出的节点实例执行结束后,并发节点正常结束。

4.2、用户挂起、手工结束相关节点的处理策略

节点 0、节点 1的挂起和恢复执行不会影响并发节点的状态(依旧处于执行状态);节点 0、节点 1的手工结束会影响并发节点和汇聚节点的状态,每个节点实例的手工结束会引起汇聚节点产生新的实例并触发节点 2,同时会引起并发节点的判断,如果所有并发的节点实例都手工结束,并发节点正常结束。

4.3、用户挂起、手工结束流程的处理策略

流程的挂起和恢复执行不会影响并发节点的状态(依旧处于执行状态),节点 0、节点 1、节点 2会被全部挂起或恢复;流程的手工结束会引起所有未结束节点的手工结束。

5、隐式结束,没有汇聚节点与并发节点对应(图 3


<!---->

3

所有节点结束时(正常结束或手工结束),并发节点正常结束。流程的手工结束会引起所有未结束节点的手工结束。

四、流程实例状态变化对节点实例状态造成的影响

1、流程实例的挂起

   A类节点挂起, B C类节点不受影响。同时在流程实例恢复执行之前, A类节点不允许用户直接恢复执行。

2、流程实例的手工结束

   所有节点全部手工结束。

五、节点实例状态变化对流程实例状态造成的影响

隐式结束的情况下,节点的手工结束或正常结束都会触发流程的判断,如果所有的节点都已结束则流程结束。

5
1
分享到:
评论

相关推荐

    工作流程JBPM工作流管理

    【工作流程JBPM工作流管理】是企业信息化建设中至关重要的一环,它涉及到组织内部的任务自动化、业务流程优化以及跨部门协作效率的提升。JBPM(JBoss Business Process Management)是Red Hat公司推出的一款开源的...

    django + vue 工作流管理系统

    【描述】:Django + Vue的工作流管理系统旨在为用户提供一套全面的流程管理工具,包括流程定义、任务分配、状态追踪等功能。Vue.js作为前端界面,能够提供动态交互体验,而Django作为后端,负责数据处理和业务逻辑。...

    asp.net开发报销多级审批工作流 (状态机版本).doc

    在状态机工作流中,流程的变迁主要由外部事件驱动。 在状态机工作流活动中,有几个核心组件: 1. State Activity:表示工作流中的一个特定状态。初始化状态由绿色标识,完成状态由红色标识。在设计状态下,可以...

    JIRA工作流介绍

    JIRA的工作流功能是实现项目管理流程自动化的重要工具。通过合理配置工作流,可以确保团队按照既定的流程执行任务,提高工作效率和项目质量。对于JIRA的企业版和专业版用户而言,利用工作流编辑器定制符合自己需求的...

    jira工作流介绍

    在Jira的默认工作流程图中,通常使用方框来表示工作流的步骤或状态,而箭头则用来表示变迁。Jira使用了名为OSWorkflow的灵活可定制的工作流引擎,并通过工作流编辑器生成OSWorkflow的XML定义文件,存储于Jira数据库...

    activity工作流 小项目

    6. **工作流引擎(Workflow Engine)**:解析流程定义,控制流程的执行和状态变迁。 三、Java中的Activity工作流实现 在Java环境中,有多个开源的工作流框架可供选择,如Activiti、jBPM、Camunda等。这些框架都提供...

    工作流参考模型真谛--胡长城

    - 流程的状态变迁是指在工作流执行过程中,各个任务或活动从一个状态转移到另一个状态的过程。 - 这些状态包括但不限于:待办、进行中、已完成等。 - 状态变迁的控制对于确保工作流的正确执行至关重要。 3. **...

    JIRA工作流详解文档.pdf

    综上所述,JIRA工作流是一个强大的工具,可以帮助组织更好地管理问题的生命周期,无论是简单的还是复杂的业务流程。通过自定义工作流,团队可以根据项目的特定需求灵活地调整工作流的结构和行为,从而提高工作效率和...

    JIRA工作流 JIRA_Workflow_v2.pdf

    例如,在一个典型的JIRA工作流中,问题可能从“新建”状态变迁到“进行中”,然后再从“进行中”变迁到“已完成”状态。 #### 六、注意事项 - 当工作流处于非激活状态时才能对其进行编辑。如果需要修改激活的工作...

    工作流引擎说明书

    本工作流引擎采取微内核架构,这一设计将复杂的流程业务问题,如组织人员任务分配、条件计算、事件操作、业务工作项处理及数据保存等,从引擎中剥离,仅保留流程状态转换的核心职责。通过这种方式,流程引擎关注于...

    js 工作流,审批流

    - 基于状态机理论,通过状态变迁来驱动工作流的执行。 4. **任务分配与调度**: - JavaScript可以通过事件驱动或者定时器实现任务的触发和分配。 - 可以结合角色权限管理,确保任务只被合适的人员处理。 5. **...

    flex工作流(完全通过)

    8. **工作流引擎**: 背后的核心是工作流引擎,它负责解析工作流定义,执行流程,管理和存储流程实例的状态。Flex应用可能需要与一个独立的工作流引擎(如Activiti或Nintex)集成,或者自定义实现一个。 9. **持久化...

    bossa工作流引擎

    BossA工作流引擎是一款基于Petri网理论的开源工作流执行引擎,主要应用于业务流程的自动化管理。在本文中,我们将深入探讨BossA的核心特点、Petri网的概念以及如何使用BossA来实现高效的工作流。 一、BossA工作流...

    WF从入门到精通(第十四章):基于状态的工作流源码

    工作流(Workflow)是软件系统中管理业务流程自动化的一种技术,尤其在企业级应用中广泛使用。本章节我们将深入探讨Windows Workflow Foundation (WF),这是.NET Framework提供的一种用于创建和执行工作流的应用框架...

    将petri网思想运用到工作流管理中

    通过这种方式,Petri网能够清晰地展现工作流的状态变迁,并支持对并发和依赖关系的分析。 其次,Petri网的并发性特点非常适合处理工作流中的并行任务。在某些情况下,多个任务可以同时进行,比如多个审批者可以独立...

    jira 配置工作流

    ### JIRA配置工作流知识点详解 ...通过深入了解JIRA的工作流机制及其配置方法,可以帮助团队更好地管理和优化问题处理流程。合理的设计和配置不仅可以提高工作效率,还可以促进团队成员之间的沟通与协作。

    基于web技术的工作流管理系统的设计与实现.pdf

    工作流管理是一种能够部分或完全自动化执行企业业务流程的技术。通过预设的过程规则,文档、信息或任务可以在不同的执行者之间传递与执行。工作流管理系统主要由三部分组成:工作流执行部件(即工作流引擎)、工作流...

    java工作流

    Java工作流是一个重要的软件开发概念,它涉及到在企业信息系统中自动化和管理业务流程。工作流管理系统(Workflow Management System,WFMS)使用Java技术可以实现灵活、可扩展且跨平台的解决方案。本文将深入探讨...

    基于活动的PHP工作流引擎

    基于活动的工作流系统是一种以活动为中心的工作流管理系统,其中工作流由一系列有序的任务组成,这些任务共同完成特定的目标或业务过程。这种工作流系统的核心在于它能够自动地调度和协调这些活动,确保按照预定的...

Global site tag (gtag.js) - Google Analytics