`
eworkflow
  • 浏览: 220285 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

工作流系统之三十五 自由流的实现

阅读更多

工作流系统在给业务流程建模的时候,按照流程引擎的设计,将业务流程定义出来。这个业务流程的每个流程实例,就按照流程建模时定义好的线路流转。

 

自由流是指流程实例在运行时,不按照预先定义好的线路流转,而是自由的跳转,由流程实例的操作人员来选择下一个到达的节点。通常这种都是不正常的流转,和回退流一样,破坏了流程的正常定义。但是自由流又很有“特色”,符合一定的业务需求。例如,当一份申请单提交审核后,需要部门经理,总经理,都审核过,才能流转到业务部门来处理,但总经理出差在外,申请单又急需处理,部门经理在线下已经征得总经理的同意后,就可以选择跳过总经理的审核,直接送到业务部门。

 

通常自由流是指向前的跳转,回退流是回退到曾经运行过的轨迹。向前跳转会略过一些节点,不运行,直接到达新的节点。回退流是回到原来的轨迹,再重新执行,对应重做(撤回)的功能。自由流对应忽略某些步骤,直接达到后面的步骤。因此在实现上,自由流和回退流的实现是有区别的。

 

顺序流的自由流的实现



 

当运行到填写步骤时,由于某种原因,直接略过审核步骤,跳转到查看步骤。或者填写人想作废掉这次的填写,直接就跳到结束步骤,结束本流程(当然需要填写人有自由跳转的权限)。

实现过程:关闭当前步骤(当前任务)--》转入历史步骤(历史任务)--》指定跳转到的步骤为当前步骤--》生成新步骤的任务

条件路由
实现过程:和顺序流一样,当自由跳转时,关闭当前步骤任务,生成跳转到的节点的步骤和任务。

循环路由:和顺序流处理过程一样。

 

 

分支路由:
分支路由在eworkflow中分为静态分支和动态分支,但是发生自由跳转时,静态分支和动态分支的处理过程是一样的。分支路由的自由跳转,就比顺序流要复杂很多。

 

单层的分支:

 

 

主干---分支
当由主干节点跳转到分支节点上时,这种跳转是没有意义的。因为分支节点产生并行的分支,几个分支后的线路是同时并行的。当自由跳转到一个分支的节点上后,另外的分支不能产生,流程会变的没有意义。
因此当发生 主干 跳转 到分支的情况时候,eworkflow是直接关闭当前节点,生成分支上的节点。但是这样流程可能会变得没有意义,主要看流程建模时候的模型。

 

主干---主干
当由主干节点跳转到主干节点,这种是正常的自由流,实现过程;关闭当前主干步骤(任务)--》转入历史步骤(历史任务)--》跳转到指定的主干步骤--》生成新的主干步骤任务。

 

 

多层的分支:
由于分支节点和聚合节点可以嵌套,因此就有多层的分支节点,分支主干,分支的分支 之间的跳转问题。总的原则是,分支主干跳转到分支主干,其它的分支不受影响。在实现的时候,需要递归的查找出各个分支的所有下级分支。

 

 

主干--主干
最外层的主干节点上的跳转,这种是正常的自由流,实现过程:关闭当前主干步骤(任务)--》转入历史步骤(任务)--》生成最外层的主干步骤--》生成新的主干步骤任务。


分支主干--分支主干
分支主干跳转到本分支的主干,是正常的自由流,关闭本分支主干,生成本分支主干的新节点,其它分支均不受影响。
实现过程:关闭本分支主干步骤(任务)--》转入历史步骤(任务)--》生成本分支跳转到的节点的步骤(任务) 其它分支均不受影响。

 

分支主干--分支的分支
分支主干跳转到本分支的分支,这种是没有意义的,和主干跳入分支是一样的,不是正常的自由流。

 

分支主干--主干
分支主干跳入最外层的主干,是正常的自由流,实现过程:结束所有分支的步骤(任务)--》转入历史步骤(任务)--》生成最外层跳转到的节点的步骤(任务)

 

分支的分支--分支主干
分支的分支跳转到分支主干,这种是正常的自由流,结束本分支下的所有子分支(包含嵌套的多级分支)生成分支主干的步骤任务,其它分支主干不受影响。
实现过程:递归查找出所有分支主干的下级分支节点--》结束查找到的所有分支当前步骤(任务)--》生成新的分支主干步骤(任务) 其它分支主干的当前步骤任务均不变化。


分支的分支--主干
分支的分支跳转到最外层的主干,这种是正常的自由流,结束所有分支,包含嵌套的分支的分支等等。生成最外层的主干步骤。
实现过程:结束所有的当前步骤(任务)--》生成新的最外层的主干步骤(任务)

 


其它 还会有 分支1的分支--分支2的分支:这种的跳转显然是没有意义的。

 

 

<script type="text/javascript"></script>

  • 大小: 17.7 KB
  • 大小: 17.2 KB
  • 大小: 40.3 KB
0
0
分享到:
评论

相关推荐

    自定义工作流系统的设计与实现

    自定义工作流系统的设计与实现是一项复杂而重要的任务,它涉及到企业的日常运营效率和业务流程优化。本文档将深入探讨如何构建一个高效、灵活且用户友好的自定义工作流系统。 首先,我们需要理解工作流的基本概念。...

    一个简单C#工作流的实现

    最初,开发者考虑使用微软SharePoint 2007作为基础平台来构建工作流系统。SharePoint 2007提供了一套较为成熟的工作流引擎,可以满足复杂的业务需求。然而,在实际开发过程中遇到了一些问题: - SharePoint 2007...

    StarFlow 工作流--自由流

    在IT领域,工作流系统是自动化业务流程的重要工具,它们使得复杂的任务管理、审批流程以及跨部门协作变得更为高效。StarFlow 工作流是一个开源的工作流框架,它专注于提供灵活、可定制的工作流解决方案。"自由流"是...

    基于Web的工作流系统的设计与实现

    #### 三、基于Web的可视化工作流系统设计实现 **3.1 流程模型设计** 流程模型设计通常采用统一建模语言(Unified Modeling Language, UML)完成。设计主要包括两大部分: 1. **业务流程模型**:描述业务流程的...

    C#完整工作流系统源码(vs2005).rar

    本文论述的是一个基于WEB技术的工作流管理系统的设计与实现,提出了一种将工作流技术应用于企业的工作流管理系统的通用架构,阐述了经典petri网调度算法在工作流引擎中的应用与实现,分析并实现了工作流引擎对三种...

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

    工作流管理系统是一个软件系统,它完成工作流的定义和管理,并按照在计算机中预先定义好的工作流逻辑推进工作流实例的执行。一个完整的工作流管理系统是由工作流执行部件、工作流功能部件和外部应用系统构成的。工作...

    OA工作流概述与OA工作流实现的一点经验

    在OA系统中,工作流主要体现在业务或公文的申请、审批、会签、登记、操作等多个环节,使得整个工作过程得到记录,方便后续的查询、统计和存档。 在OA工作流实现中,有一些关键的概念需要理解: 1. 表单设计:表单...

    javascript实现的工作流

    在本文中,我们将深入探讨如何使用JavaScript来创建工作流系统,并结合给定的文件名,如SVGView.exe和azSVGWORKFLOW,来理解它们在这个过程中的作用。 首先,让我们理解工作流的概念。工作流是指一系列有序的任务或...

    各种工作流模式的实现.pdf

    《各种工作流模式的实现》一文通过深入分析不同的工作流模式及其在Fire Workflow系统中的实现方式,为我们提供了宝贵的学习资源。 #### 二、Fire Workflow 流程元素介绍 - **Activity和Task**:Activity通常被译作...

    工作流系统功能列表

    工作流系统作为一种重要的业务自动化工具,其核心价值在于优化企业内部流程,提高工作效率与响应速度。根据提供的“工作流系统功能列表”文档,我们可以深入探讨其中的关键知识点,这些功能不仅体现了工作流系统的...

    基于 vue、ant-design-vue 的自定义Antdv 工作流组件

    在IT行业中,工作流系统是企业管理、自动化任务执行的关键组成部分,尤其在软件开发中,它可以帮助团队高效协作,实现业务流程的规范化。本项目“基于vue、ant-design-vue的自定义Antdv工作流组件”就是一个这样的...

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

    工作流管理系统主要由三部分组成:工作流执行部件(即工作流引擎)、工作流功能部件以及外部应用系统。 - **工作流执行部件**:负责解释过程定义、创建模型实例、调度模型实例任务、推进流程等。它是整个系统的核心...

    一个简单的开发OA工作流文档

    工作流的理论化描述是这样的:随着信息化进程的不断深入,协同应用软件的概念已深入人心,而工作流系统正是协同应用软件的核心。通过应用 IT 技术来规范工作流程、提高工作的执行效率和准确度,是工作流系统主要解决...

    OA工作流设计

    一个精心设计的工作流系统,能够在提高工作效率的同时,确保信息的安全、流程的合规,从而为企业带来长期的经济效益和管理效益。随着技术的不断进步,工作流系统将会更加智能化和自动化,它们在企业内部管理中的作用...

    UCML工作流

    - 无发布限制:意味着客户可以根据自身需求自由部署和使用工作流系统。 4. **成功案例**: 文档中提到了UCML的实施案例,但具体内容未给出,通常这些案例会展示系统的实际应用效果,如提高效率、降低成本、优化...

Global site tag (gtag.js) - Google Analytics