简单 C Sharp工作流的实现.docx

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
简单 C Sharp工作流的实现

一个简单 一个简单C#工作流的实现最近一直在做一个小项目,这个项目是高等学校岗位聘用审核系统,该系统涉及到多个部门审批,同时还要求管理员能对审核部门进行管理,编辑、添加和删除等。在了解到这些系统需要后,我首先想到利用微软sharepoint2007来开发,毕竟微软的工作流引擎已经非常成熟了,而且让人有种站在巨人肩膀的感觉(HoHo)。经过一段时间对sharepoint2007的学习,这套系统实在是太大了,而早几个月前这套系统在国内几乎没有一本成形的开发书籍,只有系统管理类书籍,常因为一个问题而耽误好几天,整个开发就这样停滞了,后来仔细想想其实我所开发的系统需要的工作流只是最简单工作流应用,因此也就有了自己设计一个小型工作流的想法,成就了本文,希望对大家有帮助。我设计的这个小型工作流只具有“运行先后”这个概念,没有其它判断条件,前一批工作流活动完成,后一批工作流活动开始。因为工作流类(Workflow)的结构非常简单:classWorkflow(){Private int _id; //工作流活动IDPrivate string _name; //工作流活动名称Private string _url; //工作流活动相应的网页Private int _seq; //运行顺序Private int _statusBit; //状态位}工作流活动ID不用解释了,工作流活动名称可是任何字符,这样是为了更好区分工作流活动。url的设计是由INFOPATH联想到的,微软sharepoint2007可以通过为每个工作流活动指定相应的编辑表单,可以是网页也可以infopath 设计的表单,这样的好处是让工作流的不同活动具有不同的用户界面,sharepoint2007可以在feature.xml里设置,而我这就使用url字段记录一个网页链接,不同工作流活动对应不同的网页。seq是每个工作流运行的顺序,从零开始,依次为0、1、2、3......,这个字段正是为了设置工作流的运行顺序,并行的工作流活动可以设置成相同的运行顺序。可能有人会问怎么标识工作流活动已经完成呢,这个标识正是由statusBit状态位来实现的,每个申请表中都含有一个status字段,这个字段默认为50个‘0’组成的字符串,status字段是为了记录当前申请表哪些工作流活动完成了,1为完成0为未完成,statusBit状态位正是将工作流活动与申请表中的状态联系起来,也许有些朋友会认为让系统自动分配好更好,第一个工作流活动联系第一位状态,第二个工作流活动联系第二位状态,等等。我这么做的好处是考虑到可能会有多个工作流活动只需完成其中一个活动就情况,就像逻辑判断中的“或”一样,在这种情况我们只需将多个工作流活动状态位设置成一样就可以达到目的了。光说而没有实例可能有些朋友不太明白,下面我以项目中工作流流程为例:本系统的流程是这样的(不好意思,linux 下画的图效果没visio好):由流程图得出各工作流实例如下:ID NAME URL SEQ STATUSBIT1 申请人提交申请表 user_main.aspx 0 12 各部门审查 depart_check.aspx 1 23 科技处审查 check_main.aspx 2 34 教务处审查 check_main.aspx 2 45 研究生院审查 check_main.aspx 2 56 人事科审查 check_main.aspx 2 67 人事处审查 recheck.aspx 3 78 专家评议 expert_main.aspx 4 89 完成聘用 null 5 9想必由以上实例应该很容易看出流程图了,看到这应该明白了吧下面是我的工作流类的c#实现:Using System;Using System.Web;Using System.Web.Services;Using System.Web.Services.Protocols;Using System.ComponentModel;Using System.Data;Using System.Data.SqlClient;Using System.Collections.Generic;///summary///工作流类////summaryPublic class Workflow{Private int _id;///summary///工作流编号////summaryPublic int Id{get{return _id;}set{_id=value;}}Private string _name;///summary///工作流名字////summaryPublic string Name{get{return _name;}set{_name=value;}}

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档