驰骋工作流程引擎ccbpm,ccflow,jflow关于组织结构集成的重新解释.
1.1: 组织结构集成
组织机构的模式:
根据不同的情况我们把组织结构分为一人一部门多岗位的模式,我们称呼为OneOne模式,我们把一人多部门多岗位的模式成为OneMore模式。对于这两种模式在全局配置文件里OSMode 属性里。
JFlow中的配置,文件路径:D:\JFlow\trunk\jflow-web\src\main\resources\conf\web.properties
CCFlow中配置, 文件路径:D:\ccflow\trunk\CCFlow\web.config
关于两种模式下所需要的表:
OneOne模式的组织结构表(一人一部门多岗位) | |||
表中文名 | 表名 | 字段(都是varchar类型) | |
操作员表 | Port_Emp | No,人员编号;Name,人员名称; Pass,密码; FK_Dept,所在部门; SID,安全校验码; | |
部门表 | Port_Dept | No,部门编号;Name部门名称;ParentNo父级编号; | |
岗位表 | Port_Station | No,岗位编号;Name岗位名称;FK_StationType岗位类型. | |
岗位类型表 | Port_StationType | No,编号;Name,名称; | |
人员岗位 | Port_EmpStation | FK_Emp,人员编号;FK_Station,岗位编号; | |
您可以通过如下SQL来查询出来: SELECT No,Name,Pass,FK_Dept,SID FROM PORT_EMP SELECT No,Name,ParentNo FROM PORT_Dept SELECT No,Name,FK_StationType FROM PORT_Station SELECT No,Name FROM PORT_StationType SELECT FK_Emp,FK_Station FROM PORT_EmpStation | |||
OneMore模式的组织结构表(一人多部门多岗位) | |||
表中文名 | 表名 | 字段(都是varchar类型) | |
操作员表 | Port_Emp | No,人员编号;Name,人员名称; Pass,密码; FK_Dept,所在部门; SID,安全校验码; | |
部门表 | Port_Dept | No,部门编号;Name部门名称;ParentNo父级编号; | |
岗位表 | Port_Station | No,岗位编号;Name岗位名称;FK_StationType岗位类型. | |
岗位类型表 | Port_StationType | No,编号;Name,名称; | |
人员部门 | Port_DeptEmp | MyPK,组合主键;FK_Dept,部门编号;FK_Emp,人员编号; 注:MyPK 是FK_Dept+”_”+FK_Emp 的组合. | |
人员部门岗位 | Port_DeptEmpStation | FK_Dept,部门编号;FK_Emp,人员编号;FK_Station,岗位编号; | |
您可以通过如下SQL来查询出来: SELECT No,Name,Pass,FK_Dept,SID FROM PORT_EMP SELECT No,Name,ParentNo FROM PORT_Dept SELECT No,Name,FK_StationType FROM PORT_Station SELECT No,Name FROM PORT_StationType SELECT MyPK,FK_Emp,FK_Dept FROM PORT_DeptEmp SELECT MyPK,FK_Emp,FK_Dept,FK_Station FROM PORT_DeptEmpStation | |||
组织结构表的概念:
用于控制用户的权限的表都称为组织结构表,比如:操作员、部门、岗位。与ccbpm的集成也就是组织结构表的集成,以上表格里的表都是组织结构表。
组织结构的数据来源:
根据用户的不同运行环境,我们把组织机构数据来源分为0=通过数据库映射,2通过webservices获得数据。3通过AD,获得组织结构数据,请参考上图的OSDBSrc设置,目前对于非vip用户,请使用0模式。
组织结构集成的核心思想:
把ccbpm集成到您的应用系统里,首先要解决的组织结构的集成,然后根据自己的项目确定集成模式。不管什么方式的集成,首先要把组织结构集成在一起。
把ccbpm中的组织表删除了,换成数据结构一样的视图,数据是从被集成的系统数据库映射回来的。这样ccbpm在工作时,仍然不会影响。以一个sql来说明问题。
DROP TABLE Port_Emp /* 删除本机的人员表 */ GO CREATE VIEW Port_Emp /* 创建人员视图表 */ AS SELECT BH AS No, MC as Name, bumenbianhao as FK_Dept, Password as Pass FROM ERP.dbo.Yonghu GO |
对于OneMore处理模式ccbpm如何识别当前登录部门属于那个部门?
我们知道一人多部门的信息存储到Port_DeptEmp表里,这里描述了一个人对应多个部门,但是用户进入系统后如何知道他是以那个人员的身份登录的?ccbpm读取的是Port_Emp表的FK_Dept字段作为当前部门。如果用户要切换登录部门的时候,就要先修改这个字段值作为当前登录部门。
对于历史版本的支持:
CCFlow系统会自动升级,升级代码请参考BP.WF.Glo.UpdateVer()方法。
JFlow 请手动按照上述方式修改与配置。
重要的事情说三遍:
Ccbpm的组织机构集成,就是删除ccbpm的组织机构表,建立同数据结构一样的视图!!!
Ccbpm的组织机构集成,就是删除ccbpm的组织机构表,建立同数据结构一样的视图!!!
Ccbpm的组织机构集成,就是删除ccbpm的组织机构表,建立同数据结构一样的视图!!!