【asp源码栏目提醒】:网学会员为需要asp源码的朋友们搜集整理了ASP NET环境下的网上审批流程的设计及实现 - 技术总结相关资料,希望对各位网友有所帮助!
ASP.NET环境下的网上审批流程的设计及实现 针对现代办公自动化OA系统的要求在
ASP.NET技术的基础上提出了网上审批流程审批角色的两种选择方法本文给出了网上审批流程中申报争审批管理模块的设计方案。
0 引言 以前申报审批是通过工作人员现场手工审批相关项目这种方法不仅不方便而且等待的时间过长。
采用网上审批系统申请者能够随时快速的通过网络提交申请材料在审批过程中申请者通过网络能够及时的了解到审批进度并且可以通过互联网与办事人员进行信息沟通办事人员则通过网络与其它部门协同作业办理审批业务从而缩短了审批时间节省开支提高办公效率。
ASP.NET是MicrosoftActiveSetvetPageASP技术的最新版本是微软公司推出的用于建立动态的数据库驱动网站的技术可以用MicrosoftR公司的产品Visual Studio.net开发环境进行开发WYSlwYGWhatYou SeeIsWhatYouGet所见即为所得的编辑。
ASP.NET是处理Web资源请求的框架。
它获取客户端请求然后通过它内置的管道把请求传到一个终点在这个终点开发者可以添加处理这个请求的逻辑代码。
论文结合上海某部门在办公自动化系统中对网上审批的需求对网上审批流程进行了研究针对具体问题如用户权限的设置、审批人的产生等做了相应的改变。
1 审批流程原理 网上审批流程是基于工作流的目的是在网上实现某个特定的任务即实现某个业务流程。
一个完整的审批流程包括流程的开始及开始条件、一组活动及这组活动之间的关系、流程的结束及结束条件、以及一系列与此相关的数据等。
1.1 网上审批相关定义 1用户网上审批系统的使用者每位在系统中注册成功的个人都成为该系统的用户。
2角色每位用户都有属于自己的角色不同角色的用户对系统的操作不同。
3权限每个角色都有各自的权限权限是用来决定不同角色的用户可以使用系统的不同部分。
例如角色为项目负责人的用户有权限对用户递交的申请进行批阅而一般用户则只能查询或递交申请等。
4流程指从某一用户递交申请开始至最终审批人结束审批并将结果反馈为止的整个执行过程一次完整地申请审批过程的完成也就是一次流程的完成。
5任务每次接收需要审批的申请为一个任务用户递交任务拥有审批权限的人执行该任务、结束该任务或者递交下一任务。
6节点流程的流经途径或者当前任务的位置。
7规则任务从一个节点到达另一个节点的条件以及审批项目当前的状态信息。
1.2 审批流程的定义 首先需要申请某项业务的用户注册填写申请信息递交信息交由有权限的审批人进行批阅该审批人决定申请是否通过或是交由下一审批人继续审批如此循环反复申请被一级一级地进行审批直至最后一个审批人结束审批并提供反馈信息流程结束。
1.3 模型的实现 申请在流转过程中无论流转到流程的哪一个审批人他都要先对文件进行批阅然后再决定申请下一步递交给谁。
在项目审批流程的执行过程中流程中的某次任务结束时都会使流程处于某种状态主要有通过、进行中、终止、待批、未通过5种。
“通过”指流程已经结束。
项目申请得到批准可以实施“进行中”指申请正在流程中的某个位置等待继续审批“终止”指该流程结束申请被取消“待批”指申请刚递交还未被传阅“未通过”指流程结束申请被打回或未获得批准未通过采用的是一票否决制即审批流中只要有一位审批人选择未通过则流程结束。
网上审批中审批人的选择可以通过两种方法来实现静态审批和动态审批。
1静态审批由系统管理员或者有权限的用户事先规定好流程步骤即每个节点的审批人角色申请审批的过程将根据安排好的顺序一步步递交给该角色的审批人。
申请者只需要填写必要的申报信息系统自动根据事先定好的步骤和规则将申请递交给的审批人而审批人接收到任务时也不需要考虑下一步该怎么操作只需要对申请进行批阅系统自动根据其批阅的结果和步骤根据规则决定下一步的操作。
2动态审批在审批的过程中由申请者自己选择第一位审批人并递交任务审批者在批阅后需要确认自己是否是终极审批人若不是则要选择下一位审批人并递交任务。
两种方法的区别在于静态审批中审批人在系统中由系统管理员或者有权限的用户事先规定好动态审批中审批人在流程的执行过程中动态生成由上位审批人或者申请人指定。
它们都有各自得优缺点静态审批相对简单用户操作容易但不反馈信息。
因为有些类型的审批不是按照预先定好的流程进行当现实审批情况有所改变时需要修改流程规则而且不同审批流程其规则不尽相同需要设定很多流程规则增加了系统的管理量。
动态审批则要求用户知道审批的流程细则知道自己要将任务交给谁来处理。
这两种方案对于不同的申请项目要求会有不同效果。
但其实质是一样的均可以将流程归纳为两步提交和批阅。
用户递交任务审批者执行任务并递交另一个任务至流程结束模型如图1所示。
本系统采用动态审批的方案。
图1 流程模型 针对现代办公自动化OA系统的要求在
ASP.NET技术的基础上提出了网上审批流程审批角色的两种选择方法本文给出了网上审批流程中申报争审批管理模块的设计方案。
2 网上审批流程的实现 申请者注册用户信息在网站上根据要求填写相关的申请表单提交申请相关申请数据信息写入数据库网上审批流程根据规则发送信息告知有关审批人员有待批申请需要审批审批人员接收信息进入审批页面进行批阅审批人员可以对材料进行审核适当修改填写意见信息等可以驳回结束申请或者将申请提交给下一审批人继续审批该过程中产生的数据也将写入数据库如审批人员审批的时间修改的内容等信息。
待全部审批任务完成后系统将审批结果存入数据库并发送消息通知申请人同时公布审批结果。
主要从以下两个部分来实现网上审批流程 2.1 数据库的实现 要用到的表及具体描述如下包括①用户表User包括用户姓名、角色等主要用来描述所有用户信息②角色表包括角色名称、角色权限等主要用来描述所有角色信息③申请项目基本信息表Item项目名称等主要用来描述项目信息④权限表Preview主要用来描述角色权限的信息⑤项目运转表Flowinfo运转基本信息、项目目前状态、申请数据信息主要用来描述项目运转信息⑥项目运转审批表Endorsees主要用来记录审批过程中审批人的相关信息如审批时间、顺序、意见、修改等。
数据表之间的关系每个用户都有至少一个角色一个角色亦可以有不同的用户系统根据角色来分配权限不同角色的用户对系统页面有不同的访问及操作权限一个角色可以拥有多个权限Preview同样一个权限可分配给多个角色角色权限规定该角色对网页的访问权限用户权限是通过角色权限来实现的修改角色权限时相应的就会实现对用户权限进行动态管理项目运转表与项目运转审批表是一对多的关系二者同时产生。
关系图如图2所示。
图2 数据库设计模型 Endorsees中字段RolelDs记录可以执行某次任务的所有角色IDUselD记录最终真正执行该任务的用户ID前者在任务提交时产生后者在任务结束时产生。
用户、角色、权限的映射关系通过字符串来实现即User表中的RolelDs字段、Role中的PreviewIDs字段的数据类型均为varchar每个用户角色、角色权限ID均以逗号隔开来区分。
2.2 功能模块的实现 项目申报模块 系统提供给用户注册、查询、申请等功能。
主要是填写申请单、递交申请、查询结果、在申请审批之前用户可以修改自己的申请。
主要功能实现 1申请用户注册 2申请即项目表单的页面设计 3递交申请系统向首个审批人发送信息并将任务发送至审批人的事物安排中相关的申请信息数据存入项目运转表中。
审批流程开始此时该流程的状态为“待批”。
4查询信息根据注册信息系统提供用户申请查询页面用户通过短消息模块或者直接登录进入查询页面来查询自己申请的项目当前状态。
2.2.2 项目审批管理模块 项目审批模块是网上审批系统的核心模块这一模块是具有权限的用户例如系统管理员或者部门管理员才能进入的模块主要是接收任务、批阅、递交下一审批人或者结束审批。
其功能实现 1审批人接收审批信息短消息通知审批人有待批申请审批人的事务安排中显示申请的相关信息如处理期限、结束时间等审批人可以通过短消息模块或者审批管理模块进入审批页面该页面记录审批流转的基本信息如申请人、申请时间、流程状态、当前步骤、前任审批人的相关信息等。
图3为车辆使用的审批页面。
图3 车辆使用的审批页面 2审批人处理相关信息查看申请相关的信息如申报的材料已有的处理结果等并判断申报数据信息是否符合要求。
如果不符合要求填写相关处理意见或者信息选择不批准结柬审批此时流程状态为“未通过”。
如果符合要求填写相关处理意见或者信息在静态审批中根据静态审批规则系统自动分析判断项目下一步应该如何运转如果下一步应将结果返回申请人则结束流程此时流程状态为“通过”如果下一步应由某个审批者进行再次审批向其发送信息继续第 二步骤此时流程状态为“进行中”在动态审批中审批人如果选择批准则结束流程流程状态为“通过”如果选择下一审批人递交任务则向其发送信息此时流程的状态为“进行中”继续第二步骤。
审批人也可选择终止来取消流程。
3反馈信息系统向申请人发送反馈信息告知申请结果所有审批数据归档数据库至项目运转表和项目运转审批表中。
管理信息具有权限的部门或者用户进入审批管理页面该页面用户可以根据各种查询条件得到历史项目审批信息可以对审批信息进行各种操作如查询、排序汇总、筛选、下载等亦可以终止某个流程。
针对现代办公自动化OA系统的要求在
ASP.NET技术的基础上提出了网上审批流程审批角色的两种选择方法本文给出了网上审批流程中申报争审批管理模块的设计方案。
2.2.3 角色权限设置模块 用户的访问权限同角色关联通过给用户分配合适的角色用户可以间接地对信息资源进行被授权的相应操作。
通过对用户表、角色表进行合理的设置再加上应用程序的控制可以完成多用户、多级别的权限管理Ⅲ。
当把角色分派给用户时该用户直接继承了该角色的所有权限。
当一个用户拥有几个角色时该用户的权限是所有角色权限的并集当相同角色的不同用户需要有不同的访问权限时通过增加角色的方法来实现。
角色权限的设置主要有以下两种 1对于项目审批信息查询模块和管理控制模块采用基于RBACrolebasedaccesscontr模型。
由系统管理员或者授权的用户在用户管理中修改用户的角色或在角色管理中修改角色的权限来实现。
用此方法得到的用户的权限是静态的在整个系统中只要系统管理员不去更改角色权限拥有该权限的用户一直都可以对相应的模块进行操作。
该权限的设置是通过修改用户数据表中的角色字段或者角色数据表中的权限字段来完成。
图4为角色权限分配页面。
图4 角色静态权限分配页面 2对于流程进行中的审批人权限设置采用基于TBAC模型只有当某个用户接收到审批任务时该用户才有权限对任务进行批阅操作当任务结束后该用户的权限也就随之消失。
即只有用户执行任务时才具有权限不执行任务时不具有权限。
此时系统中用户权限的分配是动态产生的而且该用户不能对自己批阅的结果进行二次更改。
这样的操作可以使得系统更加安全。
该权限的设置是通过修改项目运转审批表来完成的。
对于一个角色可能会有多个用户的情况采用的是先来先操作的原则即当这个角色的所有用户都收到短信通知或者都有权限执行某个任务时最先执行该任务的用户享有完成任务的权利当该用户结束任务时这个角色的所有用户也就不再有权限执行该任务而且其他用户也会得到任务已结束的提示这就阻止了同一任务被多次执行的情况发生使审批更具有可行性。
具体实现用户提交任务时向Flowinfo表中添加相关信息其中下位审批人的角色信息添加至字段此时角色为RolelDs的所有用户均收到审批消息并且均有权限对该申请进行审批最先执行任务的用户将执行结果的数据添加至表Flowinfo和表Endor-Sees中其中UserlD字段记录的是完成任务的用户ID当该字段有值时说明此次任务完成角色为RolelDs的用户此次任务的权限消失。
2.3 审批流程实现效果分析 在传统的网上审批系统中为了实现某种权限经常把用户权限的数据对象抽取出来静态地存储于权限表中通过查表的方法实现权限管理这种权限管理方法造成了大量的数据冗余而且极易引起更新异常。
有些改进的系统采用基于角色的方法来实现权限的管理虽然对上述问题有所避免但是增加了用户角色表和角色权限表来实现用户与角色及角色与权限的映射关系提取数据相对复杂而且数据库中仍然会有大量的冗余数据增加了数据库的管理。
本文采用字符串方式有效的解决用户、角色、权限之间的关系提取数据只需在存储过程中增加如下判断语句查询角色ID组的所有用户名函数CompareArray用来比较两个字符串中的相同子串其次传统的权限管理方法未考虑应用环境的变化给角色用户所带来的权限变化嘲本文用两种方式解决用户的角色权限设置不仅可以有效减少系统管理员的人工干预嘲而且审批人的权限在任务开始时由相关用户授权任务结束时权限消失增加了系统的安全性。
除此之外该流程还解决了如下问题 1现实审批人发生变化的问题。
角色同用户之间是多对多的关系申请人可以根据需要同时选择一个或者多个角色该角色的所有用户将同时收到审批的提醒当某个审批人不在或者某角色用户空缺时也不会影响工作流程。
2审批权限问题。
只有授予权限的审批人才能打开审批页面。
当某个任务结束时拥有执行该任务权限的所有用户的权限消失即审批该任务的页面将不会被任何用户打开包括收到审批消息的审批人。
3二次审批问题即如何阻止拥有相同审批权限的人重复审批某个申请。
当具有权限的不同用户同时打开审批页面时最先审批确定的人完成任务其它审批人再次执行时无效。
本文所提出的将基于角色和任务的两种权限管理相结合的方法在通用性、安全性、灵活性、实效性等方面也有明显的改进。
3 结束语 本文通过
ASP.NET平台介绍了网上审批流程的模型及实现实现了网上咨询、申请、审批、监督、管理等业务功能提供了数字化办公环境解决了审批流程中资源共享相互协作等问题。
审批人员的审批权限通过不同方式获得满足不同审批流程的需求增加了审批流程的灵活性。
该网审批流程已经在相关办公系统中投入实际应用并且获得较好的效果。
重要提示: 文档资料收集或整理于网络若本文档侵犯了你的权益可留言。
本人会尽快处理。