组织机构权限系统的实现(工作流)

在工作流管理系统中,业务流程的流转,每个节点的办理都是由人或组织共同参与和协作来完成的。工作流管理系统就是业务流程的自动化,通过计算机的相关技术手段将这些流程自动化,并对其进行有效的管理以提高企业运作的效率,降低开发和维护的成本,增加企业的竞争力。

 

在工作流管理系统中,企业的组织是系统执行活动和完成任务的载体,组织机构反映了企业人员的管理层次,同时也反映了人与工作,责任权限之间的关系。因此组织机构权限在工作流管理系统中具有相当重要的地位,是不可缺少的。

 

在企业管理系统中,组织机构权限模型大部分都是遵循RBAC标准,对组织机构的划分有机构,部门,职位,职员。对权限的划分通常是和角色关联的,角色,用户,许可权等是权限模型中的基本数据要素。

 

角色权限管理,是企业的管理系统信息化的一个虚拟的概念,与组织机构不一样,组织机构是企业实际存在的,反映机构的组成,人员的管理层次关系。角色是为了便于企业信息化管理而虚拟出来的概念,角色大都是模块的操作权限,许可权,原子操作等关联。

 

企业的组织是为了优化管理和开展业务而建立的企业人员的集合,具有一定的内部层次和隶属机构。组织机构建模就是对企业组织结构进行建模,是利用抽象的模型或者元素,构造出的一系列关系,用于表达企业组织机构中的实体间的层次和隶属。 通用组织机构模型,定义了抽实体“机构”,“部门”,“岗位”;其次定义组织模型的维度,如下图,分布式行政、党政、工作组。根据不同的维度确定不同的职位体系。

 

 

这样明确了公司、组织、岗位、职员之间的关系。在权限分配时可以根据组织机构上节点的不同设定不同的责任范围。

 

组织机构通常是多维树状的,权限的划分是和角色关联的。角色是企业信息化系统虚拟出来的概念,具有一定的功能模块访问操作权限,原子操作,许可权等都划分给角色。 在一个组织机构层次中,将角色划分到组织机构树节点上,角色中就具有一组用户了,同一组织机构中的用户就具有相同的操作权限和职责范围。根据组织机构的上下级层次关系,角色也具有了上下级的继承关系。

 

在工作流管理系统中,每个节点的活动都是由人来参与完成的。在流程定义的时候,按人或角色或组织节点来指定。当业务流程办理时,根据设置的人或一组人来完成活动,实现流转。工作流引擎主要完成流程的流转,组织机构权限管理完成组织机构建模,居于角色的权限系统的管理。在工作流管理系统中,需要集成组织机构权限系统。

 

在eworkflow工作流管理系统中,内置了一套组织机构权限管理系统,主要完成流程建模时和组织机构的关联。在集成企业的信息系统时,需要集成企业信息系统的组织机构权限系统。因此在eworkflow中对于组织机构权限的集成,有三种方式

 

1. 直接使用eworkflow内置的组织机构权限系统

2. 集成企业信息系统中的组织机构权限系统

3. 利用eworkflow提供的组织机构权限api接口集成。

 

第一种:直接使用eworkflow内置的组织机构权限



 

组织机构建模,组织机构分为 机构,部门,岗位。 人员可以挂到任意的组织下面,机构下面也可以直接挂岗位,挂部门。根据企业的实际情况可以设置任意的级别。

角色是和具体的操作权限,许可权关联;将角色挂接到组织机构的任意节点上,使得组织机构的同一节点上的人具有相同的操作权限和职责范围。

角色和组织机构相关联的,继承组织机构的上下级关联关系。

如将普通职员角色挂接到企业的根节点上,整个企业的所有人就都具有普通职员的操作权限;如需要获取开发部的所有人,是向下取所有子节点的范围。 角色的继承是向上继承;组织的范围是向下获取。

 

第二种:集成企业信息系统的组织机构权限

配置fcuser.xml文件,将企业的组织机构表,角色表,用户表,映射到eworkflow中。

     

 

映射完成后,达到和第一种的效果一样。组织机构,角色,用户,直接使用企业信息化系统中的表和记录。

映射的主体信息为:

组织机构表 (包含机构,部门,岗位,以及上下级关联的字段)

角色表 (角色定义表)

用户表 (职员定义表)

用户组织机构关联表

用户角色关联表

组织机构角色关联表

如果关联关系表没有可以不提供映射。

 

第三种:利用eworkflow提供的组织机构权限api接口集成

如果企业信息系统的组织机构模型和eworkflow的组织机构模型差别很大,无法做成映射关系的集成。则可以通过实现接口的方式来完成。

在接口实现类中,可以根据功能划分直接实现,也可以调用企业信息系统中的api函数来完成。

 

 

JDBCUserProvider类是eworkflow的实现类;APIUserProvider类是按user接口的二次开发实现类,在APIUserProvider类中,用户可以调用自己系统中的实现方法。

 

posted @ 2013-06-08 20:31  爱生活,爱编程  阅读(617)  评论(0编辑  收藏  举报