ITPub博客

首页 > 应用开发 > IT综合 > 驰骋BPM低代码-组织结构-设计

驰骋BPM低代码-组织结构-设计

原创 IT综合 作者:驰骋低代码BPM 时间:2026-09-25 10:28:36 0 删除 编辑

1. 定义

组织结构是指系统运行所依赖的 人员、部门、角色,以及它们之间的对应关系。CCBPM 将这些数据持久化在 Port_* 系列数据表中(实体类位于 BP.Port 命名空间)。

核心五表(视图/接口集成时通常需要映射这五张表):

表名 实体类 说明
Port_Emp Emp 人员(用户)。主键 No; FK_Dept 为主部门;含姓名、手机、邮箱、状态等。SAAS 模式下另有 UserID 字段,账号 No 通常为 组织编号_UserID 格式。
Port_Dept Dept 部门。树形结构, ParentNo 表示上级部门, NameOfPath 为部门全路径; Leader 为部门领导账号; OrgNo 标识所属组织。
Port_Station Station 角色(岗位)。流程选人规则的核心维度之一;通过 FK_StationType 归属角色类型;集团/SAAS 模式下含 OrgNo 做组织隔离。
Port_DeptEmp DeptEmp 部门-人员。支持一人多部门(兼职);主键 MyPK = FK_Dept + "_" + FK_Emp。删除记录时会级联清理该人员在该部门下的角色关系。
Port_DeptEmpStation DeptEmpStation 部门-角色-人员。三要素关联,是流程节点"按部门+角色找人"的数据基础;主键 MyPK = FK_Dept + "_" + FK_Emp + "_" + FK_Station。

扩展表(多组织模式下使用,集成时按需处理):

表名 实体类 说明
Port_Org Org 组织/租户。集团模式与 SAAS 模式的隔离单元; No 通常与根部门编号相同; Adminer 为主管理员。
Port_OrgAdminer OrgAdminer 组织管理员。记录主管理员与二级管理员,可配置流程/表单目录权限。
Port_StationType StationType 角色类型。对 Port_Station 做分类,如"管理岗""业务岗"。
Port_Team / Port_TeamType / Port_TeamEmp Team 等 标签(用户组)。用于人员分组,辅助选人,非流程核心依赖。

表间关系:

erDiagram
    Port_Org ||--o{ Port_Dept : "OrgNo"
    Port_Dept ||--o{ Port_Dept : "ParentNo"
    Port_Dept ||--o{ Port_Emp : "FK_Dept(主部门)"
    Port_Dept ||--o{ Port_DeptEmp : "FK_Dept"
    Port_Emp ||--o{ Port_DeptEmp : "FK_Emp"
    Port_StationType ||--o{ Port_Station : "FK_StationType"
    Port_Dept ||--o{ Port_DeptEmpStation : "FK_Dept"
    Port_Emp ||--o{ Port_DeptEmpStation : "FK_Emp"
    Port_Station ||--o{ Port_DeptEmpStation : "FK_Station"
    Port_Org ||--o{ Port_OrgAdminer : "OrgNo"

要点:

  • 人员通过 Port_Emp.FK_Dept 归属一个 主部门;通过 Port_DeptEmp 可额外挂接其他部门。
  • 流程按"某部门的某角色"找人时,查询的是 Port_DeptEmpStation,而非 Port_Station 本身。
  • 集团/SAAS 模式下,部门、人员、角色等表通过 OrgNo 字段做数据隔离。

2. 组织结构的运行模式

CCBPM 支持三种组织结构运行模式,通过配置项 CCBPMRunModel 切换:

  • JFlow: jflow.properties
  • CCFlow: app.config / appsettings.json
值 模式 说明
0 单组织 只有一个管理员 admin,管理组织、数据源及组织内流程。无 OrgNo 隔离。
1 集团组织 一个集团管理员 admin 可创建多个独立组织;每个组织有主管理员和若干二级管理员;各组织流程/表单默认互不可见,可通过 OrgNo 隔离;用户账号全局唯一;组织间可共享流程。类比:一个生产队(集团)管理多户人家(组织),每户有家长(组织管理员)。
2 SAAS 模式 超级管理员可开通租户;每个租户有独立管理员; 用户账号可跨租户重复(如租户 1 和租户 2 均可有 001 用户,通过 OrgNo + UserID 区分);租户间无业务往来。类比:联合国(超级管理员)下辖多个独立国家(租户)。

3. 组织结构集成

CCBPM 运行在内置组织结构之上。若业务系统已有自己的组织数据,需保持两边一致,这一过程称为 组织结构集成——本质是让 CCBPM 能读取您系统的部门、人员、角色数据。

两种集成方式:

方式 做法 适用场景
视图模式 删除 CCBPM 侧五张核心表,创建同结构的 数据库视图,将外部数据映射过来。 推荐:CCBPM 库与业务库可合并部署,无特殊隔离要求、不做流程服务中心时优先采用。
接口模式(数据同步) 业务系统组织数据变更时,调用 CCBPM 提供的同步 API 增删改对应记录。核心接口见 OrganizationAPI: Port_Org_Save、 Port_Dept_Save、 Port_Emp_Save、 Port_Station_Save 等。 CCBPM 库与业务库不在同一服务器,或无法共用数据库时采用。

接口同步注意事项(参考 Port_Emp_Save 实现):

  • 一人只有一个部门时,调用一次 Port_Emp_Save,传入部门编号及该部门下的角色编号集合。
  • 一人兼任多个部门时, 每个部门各调用一次 Port_Emp_Save。
  • SAAS 模式下, kvs 参数必须包含 @UserID=xxxx;用户编号通常为 组织编号_UserID 格式。

总结:

  • 数据库可合并时 → 视图模式,维护成本最低。
  • 数据库必须分离时 → 接口模式,在业务系统组织变更时主动同步。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70051390/viewspace-3183900/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2026-09-12

  • 博文量
    3
  • 访问量
    1258