C#毕业设计——基于C#+asp.net+sqlserver的工作流引擎系统设计与实现(毕业论文+程序源码)——工作流引擎系统

基于C#+asp.net+sqlserver的工作流引擎系统设计与实现(毕业论文+程序源码)

大家好,今天给大家介绍基于C#+asp.net+sqlserver的工作流引擎系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。需要下载开题报告PPT模板及论文答辩PPT模板等的小伙伴,可以进入我的博客主页查看左侧最下面栏目中的自助下载方法哦

文章目录:

1、项目简介

  1. 工作流就是一系列相互衔接、自动进行的业务活动或任务。工作流引擎是工作流管理系统的核心,它的主要功能是通过计算机技术的支持去定义、执行和管理工作流,协调工作流执行过程中工作之间以及群体成员之间的信息交互。
  2. 论文主要讲述了工作流引擎的基本功能及设计方法,介绍工作流引擎的基本原理,具体分析了工作流引擎所包含的内容,详细介绍了相关的信息模型和控制模型。系统采用关系结构的理念来设计工作流引擎,给出了用Microsoft Visual Studio 和Microsoft SQL Server实现系统的方法。论文中利用本工作流引擎构建系统能适应大多数业务流程的扭转,大大缩短常见信息系统的项目开发周期,提高效率。

2、资源详情

项目难度:中等难度
适用场景:相关题目的毕业设计
配套论文字数:9997个字25页
包含内容:整套源码+完整毕业论文


3、关键词:

工作流引擎;关键业务;关系

4、毕设简介

提示:以下为毕业论文的简略介绍,项目源码及完整毕业论文下载地址见文末。

1 引言
省略

《基于工作流引擎的系统框架设计开发——工作流引擎子系统》是采用Visual C#以及Microsoft SQL Server2000来开发的。系统主要由四个模块组成,他们分别是:状态图管理模块、任务列表模块、任务指派模块、任务提交模块。本系统主要包括了一下四个功能:状态图管理:对任务流程进行添加、删除、修改。任务列表:可以查看任务状态、未完成任务列表及已完成任务列表。任务指派:指派人员去完成任务。任务提交:完成任务后,进行提交,激活下一个任务。

由于信息技术的发展和日趋激烈的商业竞争,人们不再满足于独立、零散的办公自动化和计算机应用,而是需要综合的、集成化的解决方案。作为一种对常规性事务进行管理、集成的技术,工作流管理系统的出现是必然的。它可以改进和优化业务流程,提高业务工作效率;实现更好的业务过程控制,提高顾客服务质量;提高业务流程的柔性等。

2 开发概述
2.1 Visual C# 语言概述
Visual C#(读作“C sharp”)是 Visual Studio .NET 中引入的一种新的编程语言。C# 从 C 和 C++ 演变而来,是一种简单、现代、类型安全和面向对象的语言。设计 C# 是为了建立运行于 .NET 平台上的、范围广泛的企业级应用程序。用 Visual C# 编写的代码被编译为托管代码,这意味着它将受益于公共语言运行库的服务。这些服务包括:语言互操作性、垃圾回收、增强的安全性以及改进的版本支持。 在 Visual Studio .NET 中,Visual C# 完全得到项目模板、设计器、属性页、代码助理、对象模型和其他开发环境功能的支持。Visual C# 编程的库是 .NET Framework。

C#语言是一门简单,现代,优雅,面向对象,类型安全,平台独立的一门新型组件编程语言。其语法风格源自C/C++家族,融合了Visual Basic的高效和C/C++强大。其优雅的语法风格,创新的语言特性,因而深受世界各地程序员的好评和喜爱。C#起源于C语言家族,因此,C,C++和Java的程序员能很快熟悉它。C#获得了ECMA和ISO/IEC的国际标准认证,它们分别是ECMA-334标准和ISO/IEC 23270标准。Microsoft用于.NET框架的C#编译器就是根据这两个标准实现的。

2.2 工作流引擎概述
工作流技术起源于二十世纪七十年代中期办公自动化领域的研究,由于当时计算机尚未普及,网络技术水平还很低以及理论基础匮乏,这项新技术并未取得成功。1983年至1985年间,在图像处理领域和电子邮件领域出现了早期的含有工作流特征的商用系统。

进入九十年代以后,随着个人计算机、网络技术的普及和推广,以及信息化建设的日益完善,使得工作流技术的研究与开发进入了一个新的热潮。1993年,国际工作流管理联盟(WfMC)的成立标志着工作流技术开始进入相对成熟的阶段。为了实现不同工作流产品之间的互操作,WfMC在工作流管理系统的相关术语、体系结构及应用编程接口等方面制定了一系列标准。工作流管理联盟给出的工作流定义是:工作流是指整个或部分经营过程在计算机支持下的全自动或半自动化。在应用中可以把由计算机软件系统(工作流管理系统)控制其执行的过程都称为工作流。在工作流参考模型中,工作流引擎是工作流管理系统的核心。工作流引擎是为工作流管理系统在定义提供支持、同时在运行时提供解释和执行服务的一组数据模型和软件。

工作流引擎(Workflow Engine, WfE)的主要功能是通过计算机技术的支持去定义、执行和管理工作流,协调工作流执行过程中工作之间以及群体成员之间的信息交互。工作流需要依靠工作流引擎来调度、实现。作为工作流的核心应能提供以下几个方面的功能支持:解释过程定义;创建过程实例并控制其执行;调度各项活动;为用户工作表添加工作项;通过应用程序接口(API)调用应用程序;提供监督和管理功能等。

国际工作流管理联盟对工作流的过程模型提出了8种基本单元和6种控制结构。
8种基本单元分别是:开始活动、结束活动、原子活动、子过程、活动块、或节点、与节点、弧。
6种控制结构分别是:顺序结构、与分叉、与合并、或分叉、或合并、重复。

对于8种基本单元中,开始活动和结束活动本身没有实际意义,只是用来标识过程的开始和结束;子过程和活动块也可以分解为原子活动和各种控制结构的组合。这样下来,8种基本活动单元可以提炼出核心的是原子活动节点、与节点、或节点和弧四个基本单元。而6种控制结构,则可以看成是原子活动节点、与节点、或节点和弧的各种组合关系。进一步分析可以得出:6种控制结构是两个原子活动节点之间,由与节点、或节点和弧构成的控制单元。

所以,可以将原子活动单元单独提出来,我们把它称之为活动节点(Activity),将原子活动之间的各种连接方式(与节点、或节点和弧的组合)称之为基于计算机算法控制的由计算机自主完成的控制节点(ControlNode)。

近一步,我们可以在两个相邻的控制节点之间插入“哑活动”节点(是虚拟的,不做任何动作,但在计算机中创建活动实例)。这样任何一个工作流图就可以分解为活动节点和控制节点的前后连接。

这样,在一个流程实例的所有节点的状态图中,活动节点(包括“哑活动”节点)就是控制节点的流转算法的输入条件,控制节点查询状态图,与预制条件对比,就可以激活它的后续节点,从而达到工作流流转。

综上所述,它构建了一般信息系统的框架,在传统的关系数据库基础之上定义工作流数据模型;它利用DBMS内嵌的编程语言来实现工作流引擎的控制逻辑;开发者可以在此框架的基础上搭建自己的具有工作流特性的信息系统。基于工作流引擎的信息系统框架的适用对象并非应用系统的最终用户,而是利用专用开发工具构造相应应用系统的专业开发人员。

2.3 工作流引擎现状分析
省略

总结:先说明工作流管理系统的对当今企业的重要性,然后再说明工作流管理系统的核心是工作流引擎,最后分析目前我国企业管理的现状,更体现出有一套完善的工作流引擎系统对企业管理的重要性。

3 需求分析
3.1 用户需求
用户通过工作流管理系统可以更便捷的进行业务管理,而工作流引擎是工作流管理系统的核心部分,所以有必要对工作流引擎进行设计。用户需要通过工作流系统进行任务流程的定制,包括添加、删除、修改流程,并且可以直观的查看出任务的状态,可以通过任务列表察看未完成任务和已完成任务,可以进行任务指派,任务指派需要确认指派的基准和群体。用户在完成任务后,需要提交任务。

3.2 工作流引擎的分析
我们把基于工作流引擎的信息系统框架定义为:数据模型和控制模型。其中基于工作流引擎信息系统框架的数据模型又分为框架模型、机构模型和信息模型三类。控制模型将信息模型、机构摩型和框架模型有机的结合在一起,它根据其中定义的业务规则来流转业务流程,控制模型是工作引擎的控制中心。图1是基于工作引擎的信息系统通用框架的结构图。
在这里插入图片描述

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

图2状态转换图
任务管理主要根据调度中心的指示完成诸如任务创建、任务状态的转换以及相关数据的维护等工作。每次“结束任务”的外部请求将触发调度中心调用“任务管理”为后继活动(如果存在的话)创建新的实例;同时,其他不同的外部请求也将触发“任务管理”实施任务状态的切换。

任务指派处理只是针对常规交互活动活动,通常情况下,在任务状态由“睡眠状态”切换到“就绪状态”过程中完成任务的指派工作,即处于就绪状态的任务在通常情况下都确定了其执行者。任务指派过程首先根据任务指派基准确定可以执行此任务的群体人员,通常情况下这是一个包含多个人员的集合;然后根据任务指派方法确定由这个群体中的哪些个体来执行任务,执行任务的个体标识记录在相应任务记录的UserID字段中。

任务完成过后,需要将任务提交给调度中心,任务由“执行状态”切换到“处理结束通过状态”或“处理结束未通过状态”,同时激活下一个任务。

3.3 业务流程
 管理员或者超级用户定制工作流程,详见图3。
在这里插入图片描述

图3状态图管理流程图
 管理员或者超级用户进行任务指派,详见图4。
在这里插入图片描述

图4任务指派流程图
 个人、队列或者团队通过查看任务列表了解任务。
 完成任务后提交。
 执行下一个任务。

3.4 开发运行环境
安装此系统所需的基本软、硬件环境为:
 Windows98 或WindowsNT/2000/XP。
 Microsoft Visual Studio 2005。
 Microsoft SQL Server2000数据库。
 512M以上内存。
 5G以上可用硬盘空间。
 VGA显示器。
本程序在Windows XP操作系统下,以Microsoft Visual Studio 2005为前台开发工具,用Microsoft SQL Server2000为后台数据库开发实现的。
总结:以一个某省电信部门的物流信息系统为分析对象,确定该部门的组织结构和业务流程后最后确定工作流引擎系统应该具备的功能,以确定系统的主要模块,也简单介绍了该系统的开发环境和运行条件。

4 工作流引擎的设计
4.1 模块的划分
通过对用户需求调研并分析,确定系统应具备的功能,所需模块包括:状态图管理,任务管理,任务指派,任务提交。

4.2 功能描述
这个系统主要涉及到状态图管理、任务管理、任务指派、任务提交。
状态图管理:包括添加、删除、修改流程。对流程进行控制,包括无条件转移、与分支控制、与合并控制、或分支控制、或合并控制、投票合并控制。查看任务的状态,包括了睡眠状态、就绪状态、执行状态、完成通过状态以及完成未通过状态,不同的任务状态显示为不同的颜色。
任务管理:从数据库中读取出任务列表,其中包括未完成任务和已完成任务,任务列表中包括了任务建立的时间,预计完成任务的时间,完成任务人员,任务完成时间。同时可以添加新任务。

任务指派:包括等待指派的任务,任务指派的基准以及任务指派的人群。其中任务指派的基准包括基于部门进行任务指派、基于团队进行任务指派、基于角色进行任务指派、基于自定义的方式进行任务指派。任务指派的人群包括将任务分配指定的所有人员,将任务分配给指定群体中的工作量最少的人员,将任务队列中最早创建的任务分配给相应群体中最先提出执行任务请求的个体,基于优先数分配。

任务提交:任务结束后提交系统。

4.3 工作流引擎的详细设计
根据工作流引擎的工作流程,综合上述的各功能模块,设计出的系统模块图如图5所示:
在这里插入图片描述

图5系统模块图
状态图管理如图6:
在这里插入图片描述

图6状态图管理
用户通过对活动节点进行操作,主要操作动作有以下表1所示:
表1控制节点类型
在这里插入图片描述

上面所定义的6种控制类型的节点,若不能满足业务要求,可以自定义其他的控制节点类型。

一个流程实例产生之时一并产生所有活动节点的初始状态,生成以后则由控制节点来动态修改其状态。任务状态主要有6种:睡眠状态、就绪状态、执行状态、完成通过状态以及完成未通过状态。睡眠状态:流程实例创建时统一设置所有活动节点为该状态,等待唤醒。就绪状态:前趋控制节点将活动唤醒,等待人工处理。执行状态:表示正在进行人工处理,等待处理结果。完成通过状态:表示人工处理结束,移交给控制节点继续下一步处理。完成未通过状态:表示人工处理结束,处理意见为“否决”,同时移交给控制节点继续下一步处理。

任务列表用于记录那些已经创建但尚未完成的任务以及已完成的任务,它们之间用CompletionFlag标记。
任务指派是指依照某种规则将任务分配给具体人员来执行。只有常规交互活动才涉及到任务指派的问题;其他活动要么在前台不具备实际的应用逻辑,要么由工作流引擎自动调用,因此与任务指派无关。任务指派的基准是:基于部门进行任务指派、基于团队进行任务指派、基于角色进行任务指派、基于自定义的方式进行任务指派。任务指派的基准确定以后,再确定执行任务的群体,具体指派到哪些实际人员还取决于任务指派方法。指派方法有四种:ALL:表示任务将分配给由BasedOn指定的群体中的所有人员。

LEAST_WORKING_LIST:表示任务将分配给指定群体中的工作量最少的人员,工作量的多少可以通过ToDoTaskList的统计数据得到。FCFA:表示先来先分配, 即将任务队列中最早创建的任务分配给相应群体中最先提出执行任务请求的个体,任务的创建时间由DateCreated指示。PRIORITY:表示基于优先数分配, 只适合于ROLE_BASED任务指派基准。在表UserInRole中有个字段PriorityNo用于指定相应人员的优先级。用户也可以根据具体需要来添加新的任务指派方法。

4.4 数据库结构的设计
根据前面的模块功能设计,系统所需要的数据库应包括“活动节点表”,“业务过程表”,“控制节点表”,“任务指派规则表”,“任务状态表”,“任务列表”等,各部分各自作为一个表存在。
具体设计如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结: 对整个工作六引擎系统的功能模快的详细设计和所运用的Microsoft SQL Server2000数据库表的详细介绍。

5 工作流引擎的实现
授衔做了个登陆界面,以方便测试用,然后添加了一个窗体,使用了一个tabControl控件,将tabPage1、tabPage2、tabPage3、tabPage4、tabPage5分别命名为:公司简介、状态图管理、任务管理、任务指派、提交任务。其中状态图管理、任务管理、任务指派是工作流引擎的核心部分,状态图管理中主要完成的是任务的定制,包括的功能有添加、删除、合并和分支,可以直接察看任务的状态。任务管理部分主要完成的是对任务的添加、删除,同时可以查看任务列表。任务指派部分主要完成的是对指派的基准和指派的群体进行确定。下面我们将主要对状态图管理、任务管理、任务指派进行介绍。

5.1 状态图管理的设计
5.1.1 功能描述
这个窗体主要用来定制工作流程和察看任务状态,包括添加流程,删除流程,流程合并,流程拆分,状态统计以及详细状态显示。
5.1.2 界面设计
在这个窗体上用了4个ComboBox控件,6个GroupBox控件,17个label控件,5个Button控件,1个DataGridView控件,1个TextBox控件,1个panel控件。添加完毕后的窗体运行后如图8所示:
在这里插入图片描述

图8 状态图管理页面截图
5.1.3 工作流程和部分代码
在该窗体加载时进行数据库的连接,同时在左边表格中显示出数据。输入流程名,点确认添加。下拉列表将自动读取数据库中的流程名,选中一个流程名,单击确认删除,出现“删除任务流程成功”的对话框,点确定关闭。将鼠标光标移到流程拆分的文本框中,单击选中左边任务,然后确定拆分。先选中左边的任务,点添加流程到列表可以将要合并的任务移到列表中,也可点从列表中删除将任务移出,将要合并的任务移动到列表后,单击确认合并即可。状态图统计和下面的状态显示是根据数据中的信息变化的。点最下面的退出系统按钮可直接退出系统。
部分代码如下:

string sql = "select top 1 count0=(select count(*) from TaskList where CompletionFlag=0 ),count1=(select count(*) from TaskList where CompletionFlag=1 ),count2=(select count(*) from TaskList where CompletionFlag=2 ),count3=(select count(*) from TaskList where CompletionFlag=3 ),count8=(select count(*) from TaskList where CompletionFlag=8 ),count9=(select count(*) from TaskList where CompletionFlag=9 ),maxcount=(select count(*) from TaskList) from TaskList";
                read = SqlHelper.SqlHelpDao.ExecuteReader(ContClass.Constants.ConnectionString, CommandType.Text, sql);
                while (read.Read())
                {
                    this.Fettle[0] = double.Parse(read[0].ToString());
                    this.Fettle[1] = double.Parse(read[1].ToString());
                    this.Fettle[2] = double.Parse(read[2].ToString());
                    this.Fettle[3] = double.Parse(read[3].ToString());
                    this.Fettle[4] = double.Parse(read[4].ToString());
                    this.Fettle[5] = double.Parse(read[5].ToString());
                    this.Fettle[6] = double.Parse(read[6].ToString());
                    this.label13.Text = "任务流程未通过的有:" + Fettle[0].ToString() + "个";
                    this.label14.Text = "任务流程处理中的有:" + Fettle[1].ToString() + "个";
                    this.label15.Text = "任务流程已通过的有:" + Fettle[2].ToString() + "个";
                    this.label16.Text = "任务流程哑状态的有:" + Fettle[3].ToString() + "个";
                    this.label17.Text = "任务流程睡眠状态有:" + Fettle[4].ToString() + "个";
                    this.label18.Text = "任务流程等待状态有:" + Fettle[5].ToString() + "个";
                    this.label19.Text = "合计任务流程数共有:" + Fettle[6].ToString() + "个"
                    this.lbl0.Height = ((int)(this.lbl0.Height * (Fettle[0] / Fettle[6])) <= 1) ? 2 : (int)(this.lbl0.Height * (Fettle[0] / Fettle[6]));
                    this.lbl1.Height = ((int)(this.lbl1.Height * (Fettle[1] / Fettle[6])) <= 1) ? 2 : (int)(this.lbl1.Height * (Fettle[1] / Fettle[6]));
                    this.lbl2.Height = ((int)(this.lbl2.Height * (Fettle[2] / Fettle[6])) <= 1) ? 2 : (int)(this.lbl2.Height * (Fettle[2] / Fettle[6]));
                    this.lbl3.Height = ((int)(this.lbl3.Height * (Fettle[3] / Fettle[6])) <= 1) ? 2 : (int)(this.lbl3.Height * (Fettle[3] / Fettle[6]));
                    this.lbl4.Height = ((int)(this.lbl4.Height * (Fettle[4] / Fettle[6])) <= 1) ? 2 : (int)(this.lbl4.Height * (Fettle[4] / Fettle[6]));
                    this.lbl5.Height = ((int)(this.lbl5.Height * (Fettle[5] / Fettle[6])) <= 1) ? 2 : (int)(this.lbl5.Height * (Fettle[5] / Fettle[6]));
                }

5.2 任务管理窗体
5.2.1 功能描述
这个窗体主要用来显示未完成任务以及已完成任务,同时添加和删除任务。
5.2.2 界面设计
在这个窗体上用了一个DataGridView控件,2个label控件,1个ComboBox控件,1个TextBox控件,3个Button控件。添加完毕后的窗体运行后如图9所示:
在这里插入图片描述

图9任务管理页面截图
5.2.3 工作流程和部分代码
在该窗体加载时进行数据库的连接,同时在上边表格中显示出数据库中的数据。选择任务的名称,输入预计完成任务的时间,点添加可以添加任务,成功会弹出“添加任务成功!!”。选中上面表中的数据,点击删除,会弹出提示“删除任务成功!!”。点击系统退出按钮可直接退出系统。
部分代码如下:

显示任务列表:
void GetTaskList()
        		{
           	string sql = "select 流水帐号=taskListID,任务类别编号=workNumber,任务人编号=UserID,任务指派人=TaskStatus,创建任务的时间=DateCreated,完成任务需要的时间=DateAccepted,任务完成的时间=dateCompleted,任务的状态=CompletionFlag from TaskList";
ds = SqlHelper.SqlHelpDao.ExecuteDataSet(ContClass.Constants.ConnectionString, CommandType.Text, sql, "TaskList");
            			this.dgTaskList.DataSource = ds.Tables["TaskList"];
       		 }
添加任务:
private void btnListAdd_Click(object sender, EventArgs e)
        {
            if (this.cmbWorkName.SelectedIndex == -1)
            {
                MessageBox.Show("请选择任务名称!!");
            }
            else
            {
                if (this.txtListTime.Text.ToString().Trim() != string.Empty)
                {
                    if (EntityDao.CheckStrToNo.IsNumeric(this.txtListTime.Text.ToString().Trim()) == false)
                    {
                        MessageBox.Show("请正确输入预计完成任务的时间!可以是整数或小数。");
                    }
                    else
                    {
                        EntityClass.TaskList task = new WorkBuffered.EntityClass.TaskList();
                        task.WorkName = this.cmbWorkName.SelectedItem.ToString().Trim();
                        task.DateAccepted = float.Parse(this.txtListTime.Text.ToString().Trim());
                        if (EntityDao.TaskListDao.TaskListAdd(task) == true)
                        {
                            MessageBox.Show("添加任务成功!!");
                            GetTaskList();
                        }
                        else { MessageBox.Show("操作错误!!"); }
                    }
                }
            }
        }

5.3 任务指派窗体
5.3.1 功能描述
这个窗体主要用来进行任务指派,首先选中要指派的任务,然后选择指派的基准,最后选择指派的群体。
5.3.2 界面设计
在这个窗体上用了1个DataGridView控件,1个GroupBox控件,1个panel控件,2个ComboBox控件,4个Button控件,8个RadioButton控件。添加完毕后的窗体运行后如图10所示:
在这里插入图片描述

图10任务指派截图
5.3.3 工作流程和部分代码
在该窗体加载时进行数据库的连接,同时在左边表格中显示出数据。选中任务,点右移键将任务移到等待指派的任务列表中,也可点左移键将列表中的任务移出。然后选择指派的基准,即部门、团队、个人或自定义,右边的成员列表将自动给出相应的名称列表,然后选择指派的人群,最后点击确定即可。点击右下角的系统退出键可以直接退出系统。
部分代码如下:

获取未指派任务列表:
void GetWorkList()
        {
            this.cmbWorkUserList.Items.Clear();
            this.cmbWorkList.Items.Clear();
            string sql = "select 任务编号=TaskList.TaskListID,任务名称=WorkClassInfo.WorkName from WorkClassInfo,TaskList where WorkClassInfo.WorkNumber = TaskList.WorkNumber And CompletionFlag=8";
            ds = SqlHelper.SqlHelpDao.ExecuteDataSet(ContClass.Constants.ConnectionString, CommandType.Text, sql, "WorkList");
            this.dgWorkList.DataSource = ds.Tables["WorkList"];
            System.Collections.ArrayList UserList = EntityDao.SysUserDao.GetUserName();
            foreach (string str in UserList)
            {
                this.cmbWorkUserList.Items.Add(str);
            }
            UserList.Clear();
            UserList = EntityDao.WorkListDao.GetWorkWait();
            foreach (string str1 in UserList)
            {
                this.cmbWorkList.Items.Add(str1);
            }
        }
删除任务的方法:
    private void btnWorkListDel_Click(object sender, EventArgs e)
        {
            //MessageBox.Show(this.cmbWorkList.SelectedItem.ToString().Trim());
            if (this.cmbWorkList.Items.Count != 0)
            {
                int i = this.cmbWorkList.SelectedItem.ToString().Trim().IndexOf("-");
     string str=this.cmbWorkList.SelectedItem.ToString().Trim().Substring(0, i);
                if (EntityDao.WorkListDao.UpdateWorkListDel(int.Parse(str)) == true)
                {
                    this.cmbWorkList.Items.Remove(this.cmbWorkList.Text);
                }
                MessageBox.Show(i.ToString());
            }
            this.cmbWorkUserList.Items.Clear();
            this.cmbWorkList.Items.Clear();
            GetWorkList();
    }

6 测试结果
系统运行成功,完成了大部分的功能,可以添加、删除、修改流程,可以对任务进行合并、拆分,可以查看任务状态、任务列表,能够进行任务指派。但是由于技术的欠缺,状态图管理部分没能实现通过状态图的托动来订制、改变流程,这是本次作毕业设计遗憾的地方,如果继续做这个课题,可以对这部分进行修改、完善。

结 论
工作流引擎系统在Windows XP操作系统下,利用当前先进的开发工具Microsoft Visual C#.NET和SQL Server 进行开发。实践证明,由于后台数据库支持工作流机制,使开发应用难度有所降低,同时也节省了开发时间。
省略

参考文献
[1] 克里克[美].数据库处理基础、设计与实现[M].施伯乐等译校.西安:电子工业出版社, 2002。
[2] 罗鸿.ERP原理、设计、实施[M].西安:电子工业出版社,2002。
[3] WfMC. Workflow Management Coalition Specification: Terminology & Glossary. Document Number WFMC-TC-1011, Brussels, 1996。
[4] 范玉顺,吴澄.工作流管理技术研究与产品现状及发展趋势[J].计算机集成制造系统CIMS,2001,6(1):1—7。
[5] 范玉顺.工作流管理技术基础[M].北京:清华大学出版社,2001。
[6] 何清法,李国杰,焦丽梅,等.基于关系结构的轻量级工作流引擎[J].计算机研究与发展,2001,38(2):129—137 。
[7] 张海藩.软件工程导论[M].北京:清华大学出版社,2003。

致 谢
省略


5、资源下载

本项目源码及完整论文如下,有需要的朋友可以点击进行下载。如果链接失效可点击下方卡片扫码自助下载。

序号毕业设计全套资源(点击下载)
本项目源码基于C#+asp.net+sqlserver的工作流引擎系统设计与实现(源码+文档)_C#_BS架构_工作流引擎系统.zip
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

毕业设计方案专家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值