工作流设计 zt
工作流设计
业务流程管理模块是本平台的重要组成部分,要实现将已经发布的标准中规范化的流程转化为具体计算机中的流程从而实现流程的自动运转,将标准化成果与员工的日常工作紧密结合起来,具有重要意义。
业务流程管理模块主要包括流程建模、工作流执行服务、流程监控等部分。其中流程建模是用来定义一个流程,具体主要包括流程定义、流程的活动定义等;
工作流执行服务用于解释流程过程定义,并控制其运转,工作流执行服务中最重要的就是工作流引擎;流程监控用于用户监控流程的运转情况。业务流程管理模块示
意图如图3-5所示:

图3-5 流程管理示意图
3.2.2.1
流程建模
流程建模用于流程的建立、修改、删除等操作,每一个业务流程通常包含若干个活动,而在流程图中,每个节点则对应一个活动。根据业务需要,我们将节点的类型分为了七类,对于不同类型的节点,我们也应该对其进行不同的设置。
(1)开始节点和结束节点
开始类型节点和结束类型节点均属于自动活动类型,但他们是比较特殊的,一个流程只能有一个开始节点,可以有多个结束节点。
(2) Node类型节点
Node类型节点属于自动活动类型,当实例执行到这里时候,会自动根据配置处理,处理后继续向下运行。
(3) Task类型节点
Task类型节点是一种手工活动类型,非常重要。流程运转到此类型节点的时候,会自动暂停流程的运转并等待参与者做相应的操作(如填写表单),并触发相应操作后才会继续执行。
(4) Decision类型节点
Decision类型节点属于决策节点。例如在一个流程中,如果时间大于某个界限时,需要某种操作。这时,使用Decision类型节点,计算机会自动根据规则判断,并转向对应的流转路由。
Decision节点还需要设置自动跳转规则,用于计算机自动判断流程流向如何跳转。
(5) Fork类型节点
Fork类型节点是分支类型节点,用于流程的分支运转。当流程需要分支执行时,就会用到此类型的节点使流程会顺着其分支同时流转。
(6) Join类型节点
Join类型节点属于汇聚类型节点,用于结束分支流程,使其回到主流程上。Join类型节点与Fork类型节点成对出现,分支节点运行完毕后会进入Join节点,Join节点触发流程回到主流程上继续运行。
(7) SubProcess类型节点
SubProcess类型节点表示子流程类型的节点,用于实现子流程的嵌套运转。当流程运转到SubProcess类型节点时,会激活该节点绑定的子流程,并使其自动开始运转,此时主流程挂起,等到子流程结束后主流程继续执行。
3.2.2.2
工作流执行服务的详细设计
工作流执行服务主要就是指工作流引擎,是为工作流运转执行提供运转服务环境的软件,是工作流执行服务的核心部件。它的主要功能有:
(1)根据流程定义对流程进行实例化,即按照预先建立的流程定义,处理相关数据,生成一个流程实例;
(2)对流程实例运转进行控制,包括流程的启动、停止、挂起和激活等;
(3)活动(任务)的处理,使参与者能够参与具体的任务,例如进行填写申请表、审批等操作;
(4)维护和处理工作流的相关数据,例如流程运转中的控制数据或者业务数据等;
(5)对外提供接口,用于其它调用。
在工作流引擎的设计中,令牌(Token)机制被引入。令牌可以记录流程正在执行的节点,从而随着令牌的传递以此控制流程的运转。当用户开启一个流程的时候,工作流引擎会根据流程定义来新建一个流程实例,并进行数据的处理。
其次工作流引擎会找到所开启的流程的开始节点,并创建一个根令牌,使跟令牌与开始节点关联。接着引擎会根据路由规则推进流程的运转与执行。在流程的运转和执行过程中,工作流引擎会根据节点的类型,来调用不同的算法进行控制。其设计思路如下图3-6所示:

图3-6 工作流引擎设计思路
各种类型的节点根据其配置和性能不同,进行不同的处理,当节点流转到结束类型节点的时候,说明流程已经运转完毕,从而结束一个流程实例的运转。
工作流设计 zt的更多相关文章
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(42)-工作流设计-表建立
系列目录 工作流在实际应用中还是比较广泛,网络中存在很多工作流的图形化插件,可以做到拉拽的工作流设计,非常简便,再配合第三方编辑器,可以直接生成表单,我没有刻意的浏览很多工作流的实际设计,我认为工作流 ...
- Winform开发框架之简易工作流设计
一讲到工作流,很多人第一反应就是这个东西很深奥,有时候又觉得离我们较为遥远,确实完善的工作流设计很多方面,而正是由于需要兼顾很多方面,一般通用的工作流都难做到尽善尽美.微软也提供了几个版本的WF框架支 ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(48)-工作流设计-起草新申请
原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(48)-工作流设计-起草新申请 系列目录 创建新表单之后,我们就可以起草申请了,申请按照严格的表单步骤和分 ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(47)-工作流设计-补充
原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(47)-工作流设计-补充 系列目录 补充一下,有人要表单的代码,这个用代码生成器生成表Flow_Form表 ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(46)-工作流设计-设计分支
原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(46)-工作流设计-设计分支 系列目录 步骤设置完毕之后,就要设置好流转了,比如财务申请大于50000元( ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(45)-工作流设计-设计步骤
原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(45)-工作流设计-设计步骤 系列目录 步骤设计很重要,特别是规则的选择. 我这里分为几个规则 1.按自行 ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(44)-工作流设计-设计表单
原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(44)-工作流设计-设计表单 系列目录 设计表单是比较复杂的一步,完成一个表单的设计其实很漫长,主要分为四 ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(43)-工作流设计-字段分类设计
原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(43)-工作流设计-字段分类设计 系列目录 建立好42节的表之后,每个字段英文表示都是有意义的说明.先建立 ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(42)-工作流设计01
原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(42)-工作流设计01 工作流在实际应用中还是比较广泛,网络中存在很多工作流的图形化插件,可以做到拉拽的工 ...
随机推荐
- P3381: [Usaco2004 Open]Cave Cows 2 洞穴里的牛之二
这题..思维上远没有上一题复杂,是一个裸的RMQ..利用倍增就可以解决了. var n,q,i,j,f,t,c:longint; a:array[..,..] of longint; function ...
- Xcode常用快捷键及代码格式刷(缩进)方法-b
Xcode版本:4.5.1 一.总结的常用命令: 隐藏xcode command+h 退出xcode command+q 关闭窗口 command+w 关闭所有窗口 command+option+w ...
- sed 常见用法
sed 1. 移除空白行 sed '/^$/d' file 2. 直接在文本中进行替换 sed 's/pattern/replacement/g' -i file -i[SUFFIX], --in-p ...
- MapperScannerConfigurer(转)
转:http://blog.csdn.net/ranmudaofa/article/details/8508028 原文:http://www.cnblogs.com/daxin/p/3545040. ...
- jQuery.serializeArray() 函数详解
serializeArray()函数用于序列化一组表单元素,将表单内容编码为一个JavaScript数组. serializeArray()函数常用于将表单内容序列化为JSON对象,以便于被编码为JS ...
- [转载]c# 多线程一个带多个参数的方法
比如我要线程一个private void subPing(int pre,int end) 我在Thread t=之后应该如何写 用匿名委托吧!那么简单为什么要这样写!t = new Thread(d ...
- uva 1103
弄懂题意后 其实就是一个dfs /************************************************************************* > Aut ...
- 一晚上将一个模板整合进了DJANGO
哈哈,说不定,下个图表项目就可以用上呢???:)
- linux中class_create和class_register说明
http://blog.csdn.net/angle_birds/article/details/16802099 本文介绍linux中class_create和class_register的相关使用 ...
- Maven中聚合与继承
何为继承? --继承为了消除重复,我们把很多相同的配置提取出来 --例如:grouptId,version等 就像写java程序一样,对于有共性切重复的东西,就提取出来. 如有三个pom.xml配 ...