做最好用的工作流引擎,奉献社会.http://ccflow.org

驰骋工作流程引擎ccbpm,ccflow,jflow关于组织结构集成的重新解释.

1.1: 组织结构集成

组织机构的模式:

根据不同的情况我们把组织结构分为一人一部门多岗位的模式,我们称呼为OneOne模式,我们把一人多部门多岗位的模式成为OneMore模式。对于这两种模式在全局配置文件里OSMode 属性里。

JFlow中的配置,文件路径:D:\JFlow\trunk\jflow-web\src\main\resources\conf\web.properties
image

CCFlow中配置, 文件路径:D:\ccflow\trunk\CCFlow\web.config
image

关于两种模式下所需要的表:

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的组织机构表,建立同数据结构一样的视图!!!

posted on 2016-03-25 17:29  驰骋工作流  阅读(1538)  评论(0编辑  收藏  举报

做最好用的工作流引擎,奉献社会.http://ccflow.org