工作流设计 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 工作流在实际应用中还是比较广泛,网络中存在很多工作流的图形化插件,可以做到拉拽的工 ...
随机推荐
- iOS 进阶 第二天(0324)
0324 创建transform transform 是形变属性. 如下图: 如果按照上面的方法来创建的话是这样解释:是相对初始状态来说的,不会在变化后的基础上进行形变.如果要持续变化就要自己去不断改 ...
- Guide to Database Migration from Microsoft SQL Server using MySQL Workbench
http://mysqlworkbench.org/2012/07/migrating-from-ms-sql-server-to-mysql-using-workbench-migration-wi ...
- UILabel设置行间距和字间距并计算高度-b
#define UILABEL_LINE_SPACE 6 #define HEIGHT [ [ UIScreen mainScreen ] bounds ].size.height //给UILabe ...
- PlayerPrefs存储数据在本地的存储位置
PlayerPrefs存储数据时,其在windows的存储路径是注册表: HKEY_CURRENT_USER Software CompanyName ProjectName 其中的CompanyNa ...
- 异常:HRESULT: 0x80070057 (E_INVALIDARG) 的处理
碰到这个异常的原因很偶然: 现象:Solution在ReBuild过程中断电了,来电恢复了,重析编译整个Solution不报错,但在浏览页面时始终无法正常浏览,而在design的视图中,每个aspx的 ...
- vbe6ext.olb不能被加载 宏内存溢出
今天想玩一下PowerPoint的宏,却发现玩不起来!!! 另外,每次打开ppt时都会提示vbe6ext.olb不能加载. 网上说重新下载个vbe6ext.olb然后复制到相应的路径.我也试着下载,然 ...
- [转载]EasyUI Pagination 分页的两种做法
EasyUI 的 datagrid 支持服务器端分页,但是官方的资料比较少,以下总结了两种 datagrid 的服务器端分页机制,可根据情况具体使用. 一:使用 datagrid 默认机制 后台: p ...
- 如何在DJANGO里获取?带数据的东东,基于CBV
用DEF的,有现成的,而用CLASS的,就要作一下变通. 如下: if self.request.GET: if self.request.GET.get('search_pk'): search_p ...
- IText PdfPTable表格 单元的居中显示
昨晚寻找了网上很多关于IText表格居中问题,他们其中的有些代码我即使复制上去生成的doc表格的文字都是不居中的,后来我自己找出了一种居中方式: 为PdfPCell对象添加paragraph对象,并将 ...
- 一周一话题之四(JavaScript、Dom、jQuery全面复习总结<Dom篇>)
-->目录导航 一. 初探Dom 1. Dom介绍 二. Dom基础 1. window顶级对象 2. body.document对象事件 3. 通用的HTML元素的事件 4. 冒泡事件 5. ...