- 1、本文档共15页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一种基于WSS的公文审批系统的设计和实现
一种基于WSS的公文审批系统的设计和实现
2007年6月
第23卷第2期
陕西理工学院
JournalofShaanxiUniversityofTechnology
June.2oo7
Vo1.23No.2
[文章编号]1673—2944(2007)02—0033—05
一
种基于WSS的公文审批系统的设计和实现
王新房,王福环,
(1.西安理工大学自动化与信息工程学院,陕西西安710048:
2.西安理工大学计算机科学与工程学院,陕西西安710048)
[摘要]利用WSS的可扩展性和它提供的服务器端对象模型以及它与InfoPath完全集成
的特性,设计实现了一个公文审批系统,判断文档库的服务器端事件类型,异步处理文档库的
插入,删除和更新事件,确保只有合法的用户才能删除,更新文档,保证工作流的正确流向.系
统实现了基于WSS和InfoPath的公文审批工作流模型,提供一种开发工作流的思想方法.
[关键词]WSS;WSS事件;事件池;全局程序集缓存(GAC)
[中图分类号]TP311.52[文献标识码]A
随着信息化的发展,各行业对工作流技术和文档协同操作应用的需求变得越来越普遍.很多文献
对工作流的理论和模型进行了研究,各大软件公司也推出了相应的开发工作流应用的平台和工具,其中
微软WindowsServer2003中包含的wSS(WindowsSharePointServices)就是为开发工作流应用和文档
协同操作应用设计的,它提供给开发人员很方便的应用程序接口.使用WSS作为开发平台既可以充分
利用WSS提供的功能简化开发过程,节省开发资金,又可以一定程度上保证系统的性能.本文以WSS
作为开发平台,集成InfoPath,结合一个具体实例,给出一个开发工作流应用的完整过程.
1问题描述
限于篇幅,本文给出一个简化的公文审批流程模型,如图1所示.起草人填写申请,然后提交给领
导A.A如果审批通过则把申请提交给上一级领导B;否则,把申请返还给申请人让他重新修改或删
除.领导B如果审批通过则把公文发送给申请人,通知他申请通过了;否则,返回给下一级领导A,重新
审批.
利用InfoPath制作如图2的公文模板,并将该模板发布为WSS的InfoPath表单库.起草人填写完
申请后要在下一步递交给下拉列表中选择公文的第一个审批人(领导A);领导完成审批后也要在列表
中选择下一个审批人或是起草人,保证工作流的正确流向,驱动工作流的执行.
2解决方案
2.1InfoPath辅助数据源的开发
如图2的InfoPath模板的下拉列表控件显示WSS站点所有用户的用户名.为了实现该功能,模板
在发布到WSS站点前,下拉列表控件要绑定到一个的辅助数据源.这个辅助数据源可以是WSS后台
数据库的用户信息表,也可以是一个返回用户信息的Web服务.出于系统安全等多方面因素的考虑,
InfoPath模板不宜直接连接到WSS的数据库.本系统利用WSS提供的应用程序接口开发一个Web服
务作为InfoPath模板的辅助数据源.这个Web服务只有一个UserName函数来返回所有用户的用户名.
收稿日期:2006—11—24
作者简介:王新房(1962一),男,陕西蒲城人,西安理工大学教授,博士,主要研究方向为计算机网络,reb服务,智能信息
控制.
陕西理工学院第23卷
图1工作流模型
2.2WSS文档事件
图2InfoPath表单模板界面
目前,WSS版本的文档库的服务器端事件有签人,签出,取?肖签出,插入,复制,重命名,更新,删除
等.开发一个用户的事件处理类,又叫做事件池,处理这些服务器端事件,事件发生时,通知它执行相应
的处理.这个事件池用来处理指定文档库的事件.事件池和文档库是一对多的关系,可以有多个WSS
文档库被指定为同一个事件池的事件产生者.一个文档库仅有一个事件处理池.这种一对多的关系意
味着所有的对文档库事件处理逻辑必须封装在一个单独的事件池里.
为了保证工作流的正确流向,事件池处理文档的更新,删除等事件.文档更新时,通过判断进行更
新操作的用户是否是原文档下步递交给下拉列表的值,如果是,允许更新并保存;否则,不保存更新痕
迹.删除文档时,首先判断进行删除操作的用户是否是文档的作者,是,则删除之;否,则不响应需求.
但是,由于事件是异步执行的,文档只有被删除或修改后,事件池才能被通知执行相应的处理操作.
这时,文件的相关信息已经在后台数据库中被删除或修改,导致文档不能拒绝非法用户的修改和删除.
为了解决上述问题,本文提供的解决方案
是创建一个文档库的镜像库,如图3所示,用来
存贮文档库所有文档的副本.当在文档库中插
入文件时,事件池对象会把文件复制到镜像文
件库,保持两个文档库的一致性.当一个用户
删除文件时,事件池对象取出用户的身份与
文档评论(0)