用户:站长

性别:男

积分:26

注册:2013/6/2

企业应用框架(已实现工作流引擎)

发布时间:2013/12/24 12:54:00 浏览量:3559 最后回复:2016/1/26 17:46:22

框架的设计与模块组成

采用 visual studio 2012 MVC4.0 架构 基于 c# ado.net  SQL server 2008 搭建的一套适合大部分企事业单位应用于办公或业务系统的框架。由以下四大模块组成:系统模块、个人板块、内部信息板块和工作流板块

一、        系统模块

我们先来看一张系统结构图,通过对此图的讲解来讲述一下我们的框架:

框架结构图.jpg

从图中,我们可以看到,整个系统的核心是职务,通过职务,把角色和人员和权限都联系起来了。当然还有相关的部门和公司关系,也都能一一联系起来。这也是符合我们现实中的企业或单位的组织架构的,职务是基本不变的,变动的是人,通过这种关系,我们可以很简单的进行人员职务变换,而不影响整个系统的逻辑架构,这个无论是对系统的完整性或系统的维护性,都是起到决定性作用的。如果是大企业或大公司,可能存在的是比较复杂的企业之间的上下级关系,而针对复杂的企业或公司,不同的公司职务,可能都会拥有相同的系统操作权限,如果只根据职务去做逻辑处理,无疑对系统的维护造成很大的障碍。所以我们又引进了角色的概念。通过角色,把那些拥有相同操作权限的职务,都归纳起来。以达到逻辑更清晰,和维护更简便的结果。下面,我们就讲解一下系统的几个重要功能与实现:

1、              角色管理

作用与思想:通过角色来控制系统的访问权限。原则上一个职务对应一个角色,当应用对象的组织结构很简单的时候(如一个企事业单位,几个部门,每个部门几个人的时候),我们就可以针对每个职务创建一个角色来实现控制。但当组织结构很庞大的时候,角色权限的维护工作将会变得复杂化,我们可以通过角色来归纳和简化各种职能相同的职务,以达到简化系统维护的作用。

角色的创建规则是由下往上继承的模式来创建,比如根角色(如职员)有信息发送权限,那么在此根角色下创建的角色(如主管)会继承该职员角色的权限,另外再可以分配自己的权限,以此类推。在职务绑定角色的时候,当职务选择绑定到主管的时候,同时也会绑定职员角色(当然也可以删除)。

所以在搭建系统前,应该先对企事业单位的组织架构和之间的管理模式有个比较清晰的了解;然后就可以对组织架构进行总结归类,来创建相关的角色;比如一个集团公司,有10个子公司,10个子公司的组织架构都一致(总经理、各部门经理、各部门主管、一般职员),那么就可以创建以下角色:子公司职员(后面的角色可继承于这个角色)、子公司总经理、子公司部门经理、子公司部门主管;而这些角色又可以继承于整个系统的根角色(如职员)。然后在各子公司的职务绑定角色的时候,就可以同样的职务绑定到一个角色即可。这样以后系统维护角色权限的时候,只需要维护一个角色的权限即可。当然集团公司总部的角色,则需要另外创建,原理与子公司的一样。

角色的操作:删除根角色,不会一起删除根角色下的角色,根角色下的角色会自动继承原来根角色的位置。

1.jpg

2、              机构管理

根据实际情况,创建机构以及归属关系,每个机构又有自己独立的部门和职务,部门是没有继承关系的,职务有继承关系。在职务管理里,可以设置职务与角色的绑定关系。

机构管理操作:删除机构的同时,该机构下的部门和职务信息都会被删除,但该机构下的子机构不会被删除,该机构下的子机构会自动继承该机构的位置。删除部门的同时,会删除该部门下的所有职务。删除职务的时候,不会删除该职务下的子职务,子职务会继承该职务的位置。

2.jpg

3、              人员管理

人员管理是独立的模块,新创建的人员信息,与机构或部门或职务或角色都没有任何的关联,创建人员后,才能对人员进行职务的划分,划分职务后,随之人员就会绑定到相关的机构、部门、职务和角色。绑定以后,对机构、部门、职务和角色的管理,都会直接影响到人员的操作,比如人员绑定到A公司的某职务,如果删除了A公司,那么该人员与A公司职务相关的一切绑定都会被删除,人员信息不会被删除。人员信息是不能删除的,只能锁定人员。锁定人员后,将不能使用该人员账号登陆系统。

              3.jpg

二、        个人板块

此板块的内容都是只与个人相关,里面做的一切操作,都不会影响其他的人或系统。此板块的核心是“我的文档”和“我的图库”,关于此应用的更多说明,请访问品码堂(http://www.gxpmt.com),上面有文档和图库的详细说明,并配备有源码下载。此板块包括以下功能:

1、              通信组管理:个人对内部人员的划分,方便以后能快速选择通信人员。

2、              系统提示信息:查看属于自己账号的提示信息。

3、              我的常态内容:维护自己经常会用到的一些文字或图片信息,在编写信息的时候,能快速进行信息的插入操作。

4、              内部通信录:查看系统内的人员通信信息。只能由上往下查,如子公司只能看自己公司内的人员信息,集团可以看集团内的人员信息和所有子公司的人员信息,取决于创建机构的时候的归属关系。

5、              我的文档:维护自己的电子档案,可以发布到信息里面,供其他人下载。

6、              我的图库:维护自己的图片库,有预览功能,可以发布到信息里面,供其他人查看。

7、              个人信息:维护自己的个人信息。

 

三、        内部信息板块

类似于内部邮箱,里面的收件或发件,都是针对系统内的人员进行,不能对系统外的人员或邮箱进行发送信件操作。包括以下功能:

1、              草稿:保存信件操作,以供日后修改或发信用。

2、              收件箱:接收他人发来的信件,可进行回复或转发操作。

3、              发件箱:已经发送出去的信件会保存在这里,可以查看或者进行重发操作。

4.jpg

四、        工作流板块

       1.jpg

       我们了解到,工作流设计器中,各个节点的执行是基于角色的(关于SV工作流设计器可以到品码堂网站http://www.gxpmt.com去了解和下载源码),所以我们在做引擎和使用的时候,也要遵循这个规则,把工作流中的相关信息,按角色来进行数据推送,符合角色的人员就可以在前台进行相关的数据处理。既然工作流的使用是基于角色的,然后职务又是绑定到角色的,所以如果出现工作流节点处理人没空处理工作的时候,就需要原角色处理人做一个职务委托的操作,就是把原处理人所在的职务,委托给其他人,这样,被委托的人就有了处理该工作流节点的权限。

 

职务委托

       打开职务委托的界面如下:

2.jpg

如果原先已经做过委托,则此处会显示委托的记录,可以进行委托的回收和创建操作。

我们点击创建委托,出现界面如下:

3.jpg

在委托的职务项,系统会罗列出当前操作员的所有职务(不包括受托的职务),选择您将要委托的职务,在该职务前打上勾,然后点击受托人项的人员选择框,弹出人员选择框,选好职务受托人,如下图:

4.jpg

受托人可以选择多个,然后点击确定按钮把选定的人员加入到受托人列表。再单击确定按钮,完成职务委托的操作。此时在看职务委托列表,就会出现职务委托人和委托的职务信息。可以随时管理此委托信息。进行了此项操作后,列表中的受托人,就会拥有了指定的委托职务的权限。如下图:

5.jpg

以上就是职务委托的理解,当然这个职务委托是针对整个系统的,就是说受托人接受的职务,会在整个系统中体现出来,系统中,该受托的职务所拥有的所有权限,受托人都可以拥有,包括受托人原来的权限。

 

工作流绑定角色

       用工作流设计器设计好的工作流都会出现在这个列表中,其作用就是设置工作流允许哪些角色进行发起操作,注意,这里讲的是工作流的发起操作,与工作流内部的执行角色没有关联。在列表中,也可以查看工作流的流程图。如下图:

6.jpg

点击设置角色,弹出角色选择框,把允许发起的角色选上,确定即可,如下图:

7.jpg

好了,到这里,工作流正常使用的前期准备都已经介绍完了。下面就开始讲述工作流的创建到结束的过程。

 

我发起的工作流

       当前操作人员发起的工作流都会罗列在此处,我们点击进入可以看到本人发起的工作流列表,在这里可以查看您发起的工作流执行情况,也可以对您发起的工作流做暂停或终止处理操作:

8.jpg

点击“发起工作流”,会进入到工作流选择列表,如下:

9.jpg

可以看到,当前人员只有一个请假流程可以进行发起操作。点击后面的“发起”,即可发起相应的工作流,如果该工作流的第一活动节点的指定执行角色包括发起人在内,则系统会直接转入到第一活动节点的数据录入操作,如果发起人不在第一个活动节点的指定执行角色内,则一个工作流的发起就已经完成。而处于第一个活动节点的执行角色内的人员,会在“待处理的工作流”板块中看到您发起的工作流。

我们先说明一下这里的工作流发起与工作流设计器里的工作流的关系。这里的工作流发起,首先会读取工作流设计器里的工作流相关数据,一旦发起后,系统会重新建立一个工作流设计器的数据,以当做此工作流的基础,意思就是一旦发起工作流后,后面对此工作流的所有操作,都是针对这个重建的工作流设计器的数据来进行的。原来设计器里的工作流数据与后面的所有操作都没有关系,实现了工作流设计器与实际应用的相对独立性。此处理对于保证我们的工作流完整性起到至关重要的作用。让工作流的设计及维护工作变得更简单和安全化。

我们的例子是请假流程,第一个节点的执行角色是发起人,所以我们点击发起后,会直接进入第一个节点“填写请假单”的操作,如下图:

10.jpg

这里,我们可以看到请假单的填写内容,就是我们在做工作流设计的时候定义的变量,这里的4个字段,就是我们在设计工作流的时候,划分给第一个活动节点的4个变量。包括字段名称、必填项、字段类型,此处都会一一对应,通过前端配备好相应的字段属性进行显示。

填写完相应的信息后,会转到“待处理的工作流”页面。我们再点击“我发起的工作流”,在列表里,可以随时查看工作流所处环节,并可以查看流程图的直接显示,也可以对流程进行暂停和终止操作。如下图所示:

11.jpg

 

12.jpg

 

也可查看工作流的历史处理情况,如下图:

13.jpg

 

待处理的工作流

       上面我们发起了一个“请假流程”的工作流,并且执行了第一个活动节点的处理,下面我们通过第二个活动节点的处理,来看看我们的“待处理的工作流”是如果工作的,转换到第二个活动节点的角色处理人登陆系统,进入待处理的工作流页面:

14.jpg

涉及到本人要处理的工作流都会显示在这里。

针对我们的系统架构以及工作流的设计,如果您的角色,在同一个工作流中同时出现多个待处理的节点,点击处理,出现的会是一个让您选择要处理的节点,然后才会转入到具体的节点处理页面。如果您在系统中拥有多个角色,且在同一个工作流中的同一个节点上指定的多个执行角色和您拥有的角色的交集有2个或更多的时候,系统也会先跳转到让你选择处理该节点所需要的角色页面,才会转到具体的节点处理页面。(此复杂流程,可去我们的演示地址去进行实在操作,这里不做过多说明)

回到我们的请假流程,因为流程设计的比较简单,不涉及以上说的情况,所以在这里,我们也可以查看该工作流的以往处理情况,我们点击“处理”,会直接进入工作流处理界面,如下:

15.jpg

此时,我们可以看到,上一个节点处理的数据结果,会在这里显示出来,针对我们设计的请假单,第二个节点,对第一个节点的4个字段是只有查看权利的,所以,此处只是能看到这4个字段的内容,但是没有修改的权利,只是有对该申请进行审核的权利,我们选择允许,并填写相应的审核说明,点击“确定”即可完成整个工作流的处理工作。一旦待处理的工作流执行完,在“处理过的工作流”模块,就会看到您曾经处理过的所有工作流列表,并查看工作流的历史处理过程。

 

处理过的工作流

       我们进入到“处理过的工作流”模块,出现以下界面:

16.jpg

这里可以查看工作流的执行状态,也可查看历史处理情况,我们点击“处理情况”进入到历史处理情况查看页面:

17.jpg

我们可以看到每个活动节点处理的数据内容,这里要注意的是,每个节点的数据内容,是我们做工作流设计的时候,划分给该节点的可编辑的数据内容,如果没有划分的变量或只有只读属性的变量,在此处是不会显示的。如上图所示,第二个节点显示的,只有是否允许和审核说明字段。

 

异常的工作流

       我们这里说的异常,只针对一种情况,就是当前工作流的所处节点的指定执行角色里,找不到相应的人。

       此种情况一般是系统里进行了人员或职务调整,导致系统找不到原来指定的执行角色所关联的人员信息导致。处理此种情况,就是把相关的人员绑定到此节点的执行角色里即可。也可以在这里进行工作流的终止操作。

18.jpg

 

以上就是我们的框架的概要说明,可以通过以下地址登陆试用:

演示地址:http://112.124.33.147:9001

用户名:guest

密码:123456

为了保证系统能正常使用,此用户做了一些权限的限定,有些操作是没有设置权限的,请包涵。

框架内的其他用户密码统一为:123456  您可以通过不同的用户登陆试用。

框架设计的是用户唯一登陆识别,如果您在操作中提示已有人登陆,则是因为也有其他的人登陆使用,请稍后再登陆试用。


许可协议(甲方:购买者 乙方:SV企业应用框架作者)

1.甲方向乙方购买SV企业应用框架(以下简称框架)后,乙方向甲方以email的形式发送一份所购买的框架(包括各种类库和使用说明文档)。

2.甲方在遵循本许可的前提下对框架享有永久的使用权,但框架的版权归属乙方所有。

3.甲方所购买的仅仅是框架的查看和使用权,乙方有责任向甲方提供框架内的使用技术支持,甲方如果需要框架外的技术支持,需另外和乙方签订有偿的技术支持协议。

4.仅限用于购买者自己的平台或购买者自己开发的项目,产品等,包括商业性和非商业性的。

5.可以应用于任何商业性或非商业性的网站,系统或平台。

6.未经作者同意,甲方不得发布、出版、转让或者其他与框架技术相关的信息。

7.甲方不得对框架进行二次销售。

8.甲方在购买前,应先对框架进行试用测试,对安全和性能进行评估;一旦购买后,即表示甲方已经认同框架的安全和性能等指标;甲方购买后在进行的后期开发中所产生的安全及性能等问题,由甲方自己承担。

9.如果甲方希望对框架进行功能扩展或修改,需和乙方另外签订协议。

10.如果由于法院判决或违反专利的指控或任何其他原因(不限于专利问题)的结果,使得强加于甲方的条件(不管是法院判决,协议书或其他)和许可证的条件有冲突时,他们也不能令甲方背离本许可的条款。在甲方不能同时满足本许可规定的义务及其他相关的义务来发布作品时,甲方只能放弃框架的使用权。

网友回复

用户:fengyu900909

性别:男

积分:11

注册:2016/1/26

最近发布的文章

哇~~~竟然没有发布过文章!

购买商谈如何联系

回复时间:2016/1/26 17:46:22

总数:1 当前页:1 / 1 首页 上页 下页 末页
回复

品码堂 (关于我们

桂ICP备13004001号