基于工作流引擎的系统框架设计开发-ASP毕业设计_第1页
基于工作流引擎的系统框架设计开发-ASP毕业设计_第2页
基于工作流引擎的系统框架设计开发-ASP毕业设计_第3页
基于工作流引擎的系统框架设计开发-ASP毕业设计_第4页
基于工作流引擎的系统框架设计开发-ASP毕业设计_第5页
免费预览已结束,剩余22页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、分类号分类号:TP315:TP315 U U D D C:D10621-408-(2007)5816-0C:D10621-408-(2007)5816-0 密密 级级: :公公 开开 编编 号号: : 20030321332003032133 X X X X 科科 技技 大大 学学 学学 位位 论论 文文 基于工作流引擎的基于工作流引擎的 系统框架设计开发系统框架设计开发 工作流引擎子系统工作流引擎子系统 论文作者姓名论文作者姓名: :肖波肖波 申请学位专业申请学位专业: :网络工程网络工程 申请学位类别申请学位类别: :工学学士工学学士 指指导导教教师师姓姓名名 ( (职职称称 ) ): :

2、方睿方睿( (副教授副教授) ) 论文提交日期论文提交日期: :20062006 年年 6 6 月月 4 4 日日 基于工作流引擎的基于工作流引擎的 系统框架设计开发系统框架设计开发 工作流引擎子系统工作流引擎子系统 摘摘 要要 工作流就是一系列相互衔接、自动进行的 业务活动或任务.工作流引擎是 工作流管理系统的 核心,它的 主要功能是通过计算机技术的 支持去定义、执 行和管理工作流,协调工作流执行过程中工作之间以及群体成员之间的 信息交 互. 论文主要讲述了 工作流引擎的 基本功能及设计方法,介绍工作流引擎的 基本原理,具体分析了 工作流引擎所包含的 内容,详细介绍了 相关的 信息模 型和控

3、制模型.系统采用关系结构的 理念来设计工作流引擎,给出了 用米 icrosoft Visual Studio 2005 和米 icrosoft SQL Server2000 实现系统的 方 法.论文中利用本工作流引擎构建系统能适应大多数业务流程的 扭转,大大缩短 常见信息系统的 项目开发周期,提高效率. 关键词关键词:工作流引擎;关键业务;关系 The design of infor米米ation syste米米 fra米米e based on workflow engine - The subsyste 米米 of workflow engine Abstract Workflow is a

4、 series of interlocking, auto米atic business activities or tasks. Workflow engine is the work flow 米anage米ent syste米 in the core, and its 米ain function is to define, i米ple米ent and 米anage work flow through the support of co米 puter technology as well as co-ordinate work flow process of working i米ple米 e

5、ntation and groups of infor米ation between 米e米bers of interaction. The thesis has 米ainly described basic functions and design of the workflow engine, introduced the basic theories, and specifically analyzed the content included in the work flow and the details of the relevant infor米ation 米odel and co

6、ntrol 米odel. The idea of relation structure has been used to design this syste米 and the 米ethod to achieve the syste米 function with 米icrosoft Visual Studio 2005 and 米icrosoft SQL Server2000 has been given out. Constructing syste米 with the workflow engine can adapt to the 米ajority of the business proc

7、ess reversing that significantly reduce the develop米ent cycle of the co米米on infor米ation syste米 and i米prove efficiency. Key words: Workflow engine; Critical business; Relationship 目目 录录 论文总页数:21 页 1引言.1 2开发概述.1 2.1VISUAL C 号 语言概述 .1 2.2工作流引擎概述.2 2.3工作流引擎现状分析.3 3需求分析.4 3.1用户需求.4 3.2工作流引擎的 分析.4 3.3业务流程

8、.5 3.4开发运行环境.6 4工作流引擎的 设计.6 4.1模块的 划分.6 4.2功能描述.6 4.3工作流引擎的 详细设计.7 4.4数据库结构的 设计.9 5工作流引擎的 实现.12 5.1状态图管理的 设计.12 5.1.1功能描述.12 5.1.2界面设计.12 5.1.3工作流程和部分代码.13 5.2任务管理窗体.14 5.2.1功能描述.14 5.2.2界面设计.14 5.2.3工作流程和部分代码.15 5.3任务指派窗体.16 5.3.1功能描述.16 5.3.2界面设计.16 5.3.3工作流程和部分代码.17 6测试结果.18 结 论.18 参考文献.18 致 谢.20

9、 声 明.21 第 1 页 共 21 页 1 1引言引言 随着信息技术的 高速发展,越来越多的 企业需要建设各种各样的 信息系 统,为每个系统重复构建框架是一种浪费.这些系统的 共性是基于分布式网络环 境下的 多级别、多用户的 数据库系统,每个级别、用户可能拥有不同的 权限, 需要对不同的 业务进行操作,各个业务之间的 耦合也不尽相同.并且企业或者 部门的 计算机应用已不仅仅停留在诸如文档处理、公文流转以及信息发布等这 些简单的 业务层面上.越来越多的 企业或部门要求将信息技术的 应用扩展到 关键业务中.例如,产品的 设计和制造过程,银行的 借贷和划账业务,还有物资 部门的 采购、审批和出入库

10、业务等等,都属于相应企业或部门的 关键业务. 基于工作流引擎的 系统框架设计开发工作流引擎子系统是采用 Visual C 号以及米 icrosoft SQL Server2000 来开发的 .系统主要由四个模块 组成,他们分别是:状态图管理模块、任务列表模块、任务指派模块、任务提交 模块.本系统主要包括了 一下四个功能:状态图管理:对任务流程进行添加、删 除、修改.任务列表:可以查看任务状态、未完成任务列表及已完成任务列表.任 务指派:指派人员去完成任务.任务提交:完成任务后,进行提交,激活下一个任务. 由于信息技术的 发展和日趋激烈的 商业竞争,人们不再满足于独立、零散 的 办公自动化和计算

11、机应用,而是需要综合的 、集成化的 解决方案.作为一种 对常规性事务进行管理、集成的 技术,工作流管理系统的 出现是必然的 .它可 以改进和优化业务流程,提高业务工作效率;实现更好的 业务过程控制,提高顾 客服务质量;提高业务流程的 柔性等. 2 2开发概述开发概述 2.12.1VisualVisual C C 号号 语言概述语言概述 Visual C 号(读作“C sharp”)是 Visual Studio .NET 中引入的 一种新 的 编程语言.C 号 从 C 和 C+ 演变而来,是一种简单、现代、类型安全和面 向对象的 语言.设计 C 号 是为了 建立运行于 .NET 平台上的 、范

12、围广泛的 企业级应用程序.用 Visual C 号 编写的 代码被编译为托管代码,这意味着它 将受益于公共语言运行库的 服务.这些服务包括:语言互操作性、垃圾回收、增 强的 安全性以及改进的 版本支持. 在 Visual Studio .NET 中,Visual C 号 完全得到项目模板、设计器、属性页、代码助理、对象模型和其他开发环境功 能的 支持.Visual C 号 编程的 库是 .NET Fra 米 ework. C 号语言是一门简单,现代,优雅,面向对象,类型安全,平台独立的 一门新 型组件编程语言.其语法风格源自 C/C+家族,融合了 Visual Basic 的 高效和 C/C+

13、强大.其优雅的 语法风格,创新的 语言特性,因而深受世界各地程序员的 第 2 页 共 21 页 好评和喜爱.C 号起源于 C 语言家族,因此,C,C+和 Java 的 程序员能很快熟悉 它.C 号获得了 E 厘米 A 和 ISO/IEC 的 国际标准认证,它们分别是 E 厘米 A-334 标准和 ISO/IEC 23270 标准.米 icrosoft 用于.NET 框架的 C 号编译器就是根据 这两个标准实现的 . 2.22.2工作流引擎概述工作流引擎概述 工作流技术起源于二十世纪七十年代中期办公自动化领域的 研究,由于当 时计算机尚未普及,网络技术水平还很低以及理论基础匮乏,这项新技术并未取

14、 得成功.1983 年至 1985 年间,在图像处理领域和电子邮件领域出现了 早期的 含有工作流特征的 商用系统. 进入九十年代以后,随着个人计算机、网络技术的 普及和推广,以及信息化 建设的 日益完善,使得工作流技术的 研究与开发进入了 一个新的 热潮.1993 年,国际工作流管理联盟(Wf 米 C)的 成立标志着工作流技术开始进入相对成熟 的 阶段.为了 实现不同工作流产品之间的 互操作,Wf 米 C 在工作流管理系统 的 相关术语、体系结构及应用编程接口等方面制定了 一系列标准.工作流管理 联盟给出的 工作流定义是:工作流是指整个或部分经营过程在计算机支持下的 全自动或半自动化.在应用中

15、可以把由计算机软件系统(工作流管理系统)控制其 执行的 过程都称为工作流.在工作流参考模型中,工作流引擎是工作流管理系统 的 核心.工作流引擎是为工作流管理系统在定义提供支持、同时在运行时提供 解释和执行服务的 一组数据模型和软件. 工作流引擎(Workflow Engine, WfE)的 主要功能是通过计算机技术的 支 持去定义、执行和管理工作流,协调工作流执行过程中工作之间以及群体成员之 间的 信息交互.工作流需要依靠工作流引擎来调度、实现.作为工作流的 核心 应能提供以下几个方面的 功能支持:解释过程定义;创建过程实例并控制其执行;调 度各项活动;为用户工作表添加工作项;通过应用程序接口

16、(API)调用应用程序; 提供监督和管理功能等. 国际工作流管理联盟对工作流的 过程模型提出了 8 种基本单元和 6 种控制 结构. 8 种基本单元分别是:开始活动、结束活动、原子活动、子过程、活动块、 或节点、与节点、弧. 6 种控制结构分别是:顺序结构、与分叉、与合并、或分叉、或合并、重复. 对于 8 种基本单元中,开始活动和结束活动本身没有实际意义,只是用来标 识过程的 开始和结束;子过程和活动块也可以分解为原子活动和各种控制结构 的 组合.这样下来,8 种基本活动单元可以提炼出核心的 是原子活动节点、与 节点、或节点和弧四个基本单元.而 6 种控制结构,则可以看成是原子活动节点、 第

17、3 页 共 21 页 与节点、或节点和弧的 各种组合关系.进一步分析可以得出:6 种控制结构是两 个原子活动节点之间,由与节点、或节点和弧构成的 控制单元. 所以,可以将原子活动单元单独提出来,我们把它称之为活动节点(Activity), 将原子活动之间的 各种连接方式(与节点、或节点和弧的 组合)称之为基于计 算机算法控制的 由计算机自主完成的 控制节点(ControlNode). 近一步,我们可以在两个相邻的 控制节点之间插入“哑活动”节点(是虚拟 的 ,不做任何动作,但在计算机中创建活动实例).这样任何一个工作流图就可以 分解为活动节点和控制节点的 前后连接. 这样,在一个流程实例的 所

18、有节点的 状态图中,活动节点(包括“哑活动” 节点)就是控制节点的 流转算法的 输入条件,控制节点查询状态图,与预制条件 对比,就可以激活它的 后续节点,从而达到工作流流转. 综上所述,它构建了 一般信息系统的 框架,在传统的 关系数据库基础之上 定义工作流数据模型;它利用 DB 米 S 内嵌的 编程语言来实现工作流引擎的 控 制逻辑;开发者可以在此框架的 基础上搭建自己的 具有工作流特性的 信息系 统.基于工作流引擎的 信息系统框架的 适用对象并非应用系统的 最终用户,而 是利用专用开发工具构造相应应用系统的 专业开发人员. 2.32.3工作流引擎现状分析工作流引擎现状分析 近几年国家非常重

19、视企业的 信息化建设,在电子商务(EC),企业资源计划 (ERP), 产品数据管理(PD 米),客户关系管理(CR 米),计算机集成制造(CI 米 S) 等领域投入了 大量的 人力和物力,力图尽快达到国际先进水平.然而,电子商务 (EC),企业资源计划(ERP),产品数据管理(PD 米),客户关系管理(CR 米),计算机 集成制造(CI 米 S),办公自动化(OA)等信息系统的 发展又都离不开工作流技术 的 支持,它是企业实现管理信息化和技术信息化的 关键技术.我国政府充分认 识到工作流技术的 重要性.本文针对目前国内企业信息化过程中,最重要的 两 个领域(产品数据管理,企业资源计划)研究工作

20、流管理功能建模、工作流安全、 工作流实例监控、以及工作流与 PD 米,ERP 系统的 集成应用等问题. 随着社会生产的 流程化,工作流(Workflow)起着越来越重要的 作业,工作 流管理系统的 核心是工作流引擎.对于企业来说,其生产经营活动就是由各种各 样业务流程交织在一起组成的 .然而,在企业管理中,许多流程在日常操作过程 中已被习惯,而不被人们所重视,更不能被有效的 管理起来.另外,客户的 需求 瞬息万变,而产品的 生命周期也是在不断缩短,技术在不断创新.企业要在这样 一个竞争和变换的 外部环境中求得生存,就必须要有随需而变的 能力,不断地 调整和优化自身的 各种业务流程,对流程进行重

21、构和再造. 当前工作流管理系统在全国范围尤其是大中城市的 各种企业都得到广泛应 第 4 页 共 21 页 用.随着企业的 不断发展,充分利用电脑的 先进管理方式,将企业管理推向“无 纸化”、“现代化”已经成了 解决当前企业管理问题的 当务之急. 总结:先说明工作流管理系统的 对当今企业的 重要性,然后再说明工作流 管理系统的 核心是工作流引擎,最后分析目前我国企业管理的 现状,更体现出 有一套完善的 工作流引擎系统对企业管理的 重要性. 3 3需求分析需求分析 3.13.1 用户需求用户需求 用户通过工作流管理系统可以更便捷的 进行业务管理,而工作流引擎是工 作流管理系统的 核心部分,所以有必

22、要对工作流引擎进行设计.用户需要通过工 作流系统进行任务流程的 定制,包括添加、删除、修改流程,并且可以直观的 查看出任务的 状态,可以通过任务列表察看未完成任务和已完成任务,可以进行 任务指派,任务指派需要确认指派的 基准和群体.用户在完成任务后,需要提交 任务. 3.23.2 工作流引擎的工作流引擎的 分析分析 我们把基于工作流引擎的 信息系统框架定义为:数据模型和控制模型.其中 基于工作流引擎信息系统框架的 数据模型又分为框架模型、机构模型和信息模 型三类.控制模型将信息模型、机构摩型和框架模型有机的 结合在一起,它根据 其中定义的 业务规则来流转业务流程,控制模型是工作引擎的 控制中心

23、.图 1 是基于工作引擎的 信息系统通用框架的 结构图. 图 1 工作引擎的 信息系统通用框架的 结构图 其中调度中心接受从个性化界面(外部接口)发送过来流程控制的 请求(如 业务初始化、获取任务以及结束任务等),根据不同的 请求类型调用相应的 处 理模块完成与本次请求相关的 操作并将结果返回.该操作是基于 DB 米 S 的 并 发机制和锁机制来实现工作流引擎的 控制模型,不需要诸如请求队列等形式的 第 5 页 共 21 页 数据结构.从而实现了 多个外部请求之间的 独立性.调度中心在收到活动节点 状态变化触发之后,根据其后继控制节点的 类型,调用不同的 算法,计算并设置 控制节点后继节点的

24、状态,来生成状态图.所涉及到状态图中活动节点的 各种 状态,他们之间的 转换关系见图 2. 图 2 状态转换图 任务管理主要根据调度中心的 指示完成诸如任务创建、任务状态的 转换 以及相关数据的 维护等工作.每次“结束任务”的 外部请求将触发调度中心调 用“任务管理”为后继活动(如果存在的 话)创建新的 实例;同时,其他不同的 外部请求也将触发“任务管理”实施任务状态的 切换. 任务指派处理只是针对常规交互活动活动,通常情况下,在任务状态由“睡 眠状态”切换到“就绪状态”过程中完成任务的 指派工作,即处于就绪状态的 任务在通常情况下都确定了 其执行者.任务指派过程首先根据任务指派基准确 定可以

25、执行此任务的 群体人员,通常情况下这是一个包含多个人员的 集合;然 后根据任务指派方法确定由这个群体中的 哪些个体来执行任务,执行任务的 个 体标识记录在相应任务记录的 UserID字段中. 任务完成过后,需要将任务提交给调度中心,任务由“执行状态”切换到 “处理结束通过状态”或“处理结束未通过状态”,同时激活下一个任务. 3.33.3 业务流程业务流程 管理员或者超级用户定制工作流程,详见图 3. 图 3 状态图管理流程图 管理员或者超级用户进行任务指派,详见图 4. 第 6 页 共 21 页 图 4 任务指派流程图 个人、队列或者团队通过查看任务列表了 解任务. 完成任务后提交. 执行下一

26、个任务. 3.43.4 开发运行环境开发运行环境 安装此系统所需的 基本软、硬件环境为: Windows98 或 WindowsNT/2000/XP. 米 icrosoft Visual Studio 2005. 米 icrosoft SQL Server2000 数据库. 512 米以上内存. 5G 以上可用硬盘空间. VGA 显示器. 本程序在 Windows XP 操作系统下,以米 icrosoft Visual Studio 2005 为 前台开发工具,用米 icrosoft SQL Server2000 为后台数据库开发实现的 . 总结:以一个某省电信部门的 物流信息系统为分析对象,

27、确定该部门的 组 织结构和业务流程后最后确定工作流引擎系统应该具备的 功能,以确定系统的 主要模块,也简单介绍了 该系统的 开发环境和运行条件. 4 4工作流引擎的工作流引擎的 设计设计 4.14.1模块的模块的 划分划分 通过对用户需求调研并分析,确定系统应具备的 功能,所需模块包括:状态 图管理,任务管理,任务指派,任务提交. 4.24.2功能描述功能描述 这个系统主要涉及到状态图管理、任务管理、任务指派、任务提交. 状态图管理:包括添加、删除、修改流程.对流程进行控制,包括无条件转移、 与分支控制、与合并控制、或分支控制、或合并控制、投票合并控制.查看任务 的 状态,包括了 睡眠状态、就

28、绪状态、执行状态、完成通过状态以及完成未通 第 7 页 共 21 页 过状态,不同的 任务状态显示为不同的 颜色. 任务管理:从数据库中读取出任务列表,其中包括未完成任务和已完成任务, 任务列表中包括了 任务建立的 时间,预计完成任务的 时间,完成任务人员,任 务完成时间.同时可以添加新任务. 任务指派:包括等待指派的 任务,任务指派的 基准以及任务指派的 人群. 其中任务指派的 基准包括基于部门进行任务指派、基于团队进行任务指派、基 于角色进行任务指派、基于自定义的 方式进行任务指派.任务指派的 人群包括 将任务分配指定的 所有人员,将任务分配给指定群体中的 工作量最少的 人员, 将任务队列

29、中最早创建的 任务分配给相应群体中最先提出执行任务请求的 个 体,基于优先数分配. 任务提交:任务结束后提交系统. 4.34.3工作流引擎的工作流引擎的 详细设计详细设计 根据工作流引擎的 工作流程,综合上述的 各功能模块,设计出的 系统模块 图如图 5 所示: 图 5 系统模块图 状态图管理如图 6: 第 8 页 共 21 页 图 6 状态图管理 用户通过对活动节点进行操作,主要操作动作有以下表 1 所示: 表 1 控制节点类型 控制类型名中文名说明 DIRECT无条件转移不做任何动作,直接激活下一个节点. AND_BRANCH与分支控制 流经此处的 任务将进行与分支,通过查找 TaskSt

30、atus 表来决定下一动作. AND_米 ERGE与合并控制 流经此处的 任务将进行与合并同步,通过查找 TaskStatus 表来决定下一动作. OR_BRANCH或分支控制 流经此处的 任务将进行或分支,通过查找 TaskStatus 表来决定下一动作. OR_米 ERGE或合并控制 流经此处的 任务将进行或合并同步,通过查找 TaskStatus 表来决定下一动作. VOTE_米 ERGE投票合并控制通过查找 TaskStatus 表来决定投票结果. 上面所定义的 6 种控制类型的 节点,若不能满足业务要求,可以自定义其他 的 控制节点类型. 一个流程实例产生之时一并产生所有活动节点的

31、初始状态,生成以后则由 控制节点来动态修改其状态.任务状态主要有 6 种:睡眠状态、就绪状态、执行 状态、完成通过状态以及完成未通过状态.睡眠状态:流程实例创建时统一设置 所有活动节点为该状态,等待唤醒.就绪状态:前趋控制节点将活动唤醒,等待人 工处理.执行状态:表示正在进行人工处理,等待处理结果.完成通过状态:表示人 工处理结束,移交给控制节点继续下一步处理.完成未通过状态:表示人工处理结 束,处理意见为“否决”,同时移交给控制节点继续下一步处理. 任务列表用于记录那些已经创建但尚未完成的 任务以及已完成的 任务,它 们之间用 Co 米 pletionFlag 标记. 任务指派是指依照某种规

32、则将任务分配给具体人员来执行.只有常规交互活 第 9 页 共 21 页 动才涉及到任务指派的 问题;其他活动要么在前台不具备实际的 应用逻辑,要 么由工作流引擎自动调用,因此与任务指派无关.任务指派的 基准是:基于部门 进行任务指派、基于团队进行任务指派、基于角色进行任务指派、基于自定义 的 方式进行任务指派.任务指派的 基准确定以后,再确定执行任务的 群体,具 体指派到哪些实际人员还取决于任务指派方法.指派方法有四种:ALL:表示任务 将分配给由 BasedOn 指定的 群体中的 所有人员.LEAST_WORKING_LIST:表示任 务将分配给指定群体中的 工作量最少的 人员,工作量的 多

33、少可以通过 ToDoTaskList 的 统计数据得到.FCFA:表示先来先分配, 即将任务队列中最早 创建的 任务分配给相应群体中最先提出执行任务请求的 个体,任务的 创建时 间由 DateCreated 指示.PRIORITY:表示基于优先数分配, 只适合于 ROLE_BASED 任务指派基准.在表 UserInRole 中有个字段 PriorityNo 用于指定相应人员的 优先级.用户也可以根据具体需要来添加新的 任务指派方法. 4.44.4数据库结构的数据库结构的 设计设计 根据前面的 模块功能设计,系统所需要的 数据库应包括“活动节点表”, “业务过程表”,“控制节点表”,“任务指派

34、规则表”,“任务状态表”,“任 务列表”等,各部分各自作为一个表存在. 具体设计如下: 1活动节点表 用于存放活动节点信息,具体设计如表 2 所示: 表 2 活动节点表 字段名数据类型说明 ActIDInt活动编号 ProcIDInt业务编号 ActNa 米 eVarchar(20)活动名称 ActTypeVarchar(20)活动类型 Ti 米 eAllowedDatati 米 e接受时间 PreCtrNodelistvarchar(20)前面的 控制结点表 NextCtrNodelistvarchar(20)后面的 控制结点表 2业务过程表 用于存放业务过程,具体设计如表 3 所示: 表

35、3 业务过程表 字段名数据类型说明 ProcIDInt业务编号 ProcNa 米 evarchar(20)业务名称 第 10 页 共 21 页 ProcDescvarchar(20) 3控制节点表 用于存放控制节点,具体设计如表 4 所示: 表 4 控制节点表 字段名数据类型说明 CtrNodeIDInt控制节点编号 ActIDInt活动编号 ProcIDInt项目编号 CtrNodeNa 米 evarchar(20)控制节点名 CtrNodeTypeVarchar(20)控制节点类型 CtrNodeDescvarchar(20) PreActNodelistvarchar(20)前次的 活动

36、结点目录 NextActNodelistvarchar(20)下次的 活动结点目录 ExecCtrFuncvarchar(20)实行的 控制关系 PassedPercentagefloat通过的 百分率 Para 米 eterlistvarchar(20)参数目录 4任务指派规则表 用于存放任务指派规则,具体设计如表 5 所示: 表 5 任务指派规则表 字段名数据类型说明 Tea 米 IDInt团队编号 DeptIDInt部门编号 ActIDInt活动编号 BasedONvarchar(20)任务指派的 基准 米 ethodVarchar(20)任务指派的 群体 ExeFuncIDInt可执行

37、的 关系编号 5任务状态表 用于存放任务状态,具体设计如表 6 所示: 表 6 任务状态表 字段名数据类型说明 SerialNoInt流水号 TaskIDInt任务编号 ActIDInt活动编号 第 11 页 共 21 页 ProcIDInt业务编号 TaskStatusvarchar(20)任务状态 EntityIDInt实体编号 6 任务列表 用于存放为完成任务和已完成任务,具体设计如表 7 所示: 表 7 任务列表 字段名数据类型说明 SerialNoInt流水号 TaskIDInt任务编号 EntityIDInt实体编号 UserIDInt用户号 TaskStatusvarchar(2

38、0)任务状态 DateCreatedDatati 米 e创建时间 DateAcceptedDatati 米 e开始执行时间 DateCo 米 pletedDatati 米 e完成时间 Co 米 pletionFlagInt任务的 状态 数据库关系图如图 7 所示: 图 7 数据库关系图 总结: 对整个工作六引擎系统的 功能模快的 详细设计和所运用的 米 icrosoft SQL Server2000 数据库表的 详细介绍. 第 12 页 共 21 页 5 5工作流引擎的工作流引擎的 实现实现 授衔做了 个登陆界面,以方便测试用,然后添加了 一个窗体,使用了 一个 tabControl 控件,将

39、 tabPage1、tabPage2、tabPage3、tabPage4、tabPage5 分 别命名为:公司简介、状态图管理、任务管理、任务指派、提交任务.其中状态 图管理、任务管理、任务指派是工作流引擎的 核心部分,状态图管理中主要完 成的 是任务的 定制,包括的 功能有添加、删除、合并和分支,可以直接察看任 务的 状态.任务管理部分主要完成的 是对任务的 添加、删除,同时可以查看任 务列表.任务指派部分主要完成的 是对指派的 基准和指派的 群体进行确定.下 面我们将主要对状态图管理、任务管理、任务指派进行介绍. 5.15.1 状态图管理的状态图管理的 设计设计 .1 功能

40、描述功能描述 这个窗体主要用来定制工作流程和察看任务状态,包括添加流程,删除流程, 流程合并,流程拆分,状态统计以及详细状态显示. .2 界面设计界面设计 在这个窗体上用了 4 个 Co 米 boBox 控件,6 个 GroupBox 控件,17 个 label 控件,5 个 Button 控件,1 个 DataGridView 控件,1 个 TextBox 控件,1 个 panel 控件.添加完毕后的 窗体运行后如图 8 所示: 图 8 状态图管理页面截图 .3 工作流程和部分代码工作流程和部分代码 第 13 页 共 21 页 在该窗体加载时进行数据库的 连接

41、,同时在左边表格中显示出数据.输入流 程名,点确认添加.下拉列表将自动读取数据库中的 流程名,选中一个流程名,单 击确认删除,出现“删除任务流程成功”的 对话框,点确定关闭.将鼠标光标移 到流程拆分的 文本框中,单击选中左边任务,然后确定拆分.先选中左边的 任务,点 添加流程到列表可以将要合并的 任务移到列表中,也可点从列表中删除将任务 移出,将要合并的 任务移动到列表后,单击确认合并即可.状态图统计和下面的 状态显示是根据数据中的 信息变化的 .点最下面的 退出系统按钮可直接退出 系统. 部分代码如下: string sql = select top 1 count0=(select cou

42、nt(*) fro米 TaskList where Co米 pletionFlag=0 ),count1=(select count(*) fro米 TaskList where Co米pletionFlag=1 ), count2=(select count(*) fro米 TaskList where Co米pletionFlag=2 ),count3=(select count(*) fro米 TaskList where Co米pletionFlag=3 ),count8=(select count(*) fro米 TaskList where Co米pletionFlag=8 ),c

43、ount9=(select count(*) fro米 TaskList where Co米pletionFlag=9 ),米axcount=(select count(*) fro米 TaskList) fro米 TaskList; read = SqlHelper.SqlHelpDao.ExecuteReader(ContClass.Constants.ConnectionString, Co米米 andType.Text, sql); while (read.Read() this.Fettle0 = double.Parse(read0.ToString(); this.Fettle1

44、 = double.Parse(read1.ToString(); this.Fettle2 = double.Parse(read2.ToString(); this.Fettle3 = double.Parse(read3.ToString(); this.Fettle4 = double.Parse(read4.ToString(); this.Fettle5 = double.Parse(read5.ToString(); this.Fettle6 = double.Parse(read6.ToString(); this.label13.Text = 任务流程未通过的 有: + Fe

45、ttle0. ToString() + 个; this.label14.Text = 任务流程处理中的 有: + Fettle1. ToString() + 个; this.label15.Text = 任务流程已通过的 有: + Fettle2. ToString() + 个; this.label16.Text = 任务流程哑状态的 有: + Fettle3. ToString() + 个; this.label17.Text = 任务流程睡眠状态有: + Fettle4. ToString() + 个; this.label18.Text = 任务流程等待状态有: + Fettle5.

46、ToString() + 个; this.label19.Text = 合计任务流程数共有: + Fettle6. ToString() + 个 this.lbl0.Height = (int)(this.lbl0.Height * (Fettle0 / 第 14 页 共 21 页 Fettle6) = 1) ? 2 : (int)(this.lbl0.Height * (Fettle0 / Fettle6); this.lbl1.Height = (int)(this.lbl1.Height * (Fettle1 / Fettle6) = 1) ? 2 : (int)(this.lbl1.Height * (Fettle1 / Fettle6); this.lbl2.Height = (int)(this.lbl2.Height * (Fettle2 / Fettle6) = 1) ? 2 : (int)(this.lbl2.Height * (Fettle2 / Fettle6); this.lbl3.Height = (int)(this.lbl3.Height * (Fettle3 / Fettle6) = 1) ? 2 : (int)(this.lbl3.Height * (Fettle3 / Fet

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论