驰骋bpm,CCFlow 数据源体系架构与技术说明

统一数据桥:CCFlow 数据源体系架构与技术说明

为表单、流程、低代码与大屏提供一致的数据访问能力——应用与外部系统之间的可配置桥梁。

在这里插入图片描述

一、定位与价值

数据源是 CCFlow / ccfast 平台中面向业务应用的统一数据组件。单据、实体、流程、门户等上层应用不直接对接第三方系统,而是通过数据源完成数据读取、下拉展示、结果集查询与业务过程调用。

其核心使命可以概括为:

应用层(流程 / 表单 / 大屏 / 低代码)
        ↕
   数据源(枚举 / 字典 / 查询 / 过程)
        ↕
外部系统(本机库 / 关系数据库 / WebApi)

这与官方概念文档中的数据源结构图一致:数据源是应用与外部系统之间的桥梁,将异构的数据获取方式收敛为统一的四类能力。


二、工程全貌

2.1 目录与模块分层

前端工程采用「树表一体管理页 + 实体定义 + 向导创建 + 后端执行」的分层结构:

Vue3/src/WF/Admin/
├── TreeEns_DBSrc.ts          ← 管理入口:左侧树 + 右侧列表
└── FrmLogic/
    ├── SFDBSrc/              ← 数据源连接(根节点)
    │   ├── SFDBSrc.ts        ← 基础实体
    │   ├── SFDBSrcLocal.ts   ← 本机数据源
    │   ├── SFDBSrcSQL.ts     ← 关系数据库数据源
    │   ├── SFDBSrcWebApi.ts  ← WebApi 数据源
    │   └── GPN_*.ts          ← 新建向导
    ├── SFTable/              ← 字典
    ├── SFSearch/             ← 查询
    ├── SFProc/               ← 过程
    ├── SysEnum/              ← 枚举(仅本机数据源)
    └── Sync/                 ← 数据同步(基于查询结果落地)

2.2 管理界面:树表联动

TreeEns_DBSrc 继承 PageBaseTreeEns,是数据源管理的唯一入口页

层级含义实现方式
一级节点数据源实例Sys_SFDBSrc 表加载,如 local、各 SQL/WebApi 连接
二级节点能力分类运行时虚拟构造,非数据库记录
右侧列表具体配置项按节点类型切换不同实体集合与列定义

每个数据源下固定挂载四类(本机额外含枚举):

数据源(SFDBSrc)
 ├── 字典(SFTable)      nodeID: {srcNo},SFTable
 ├── 查询(SFSearch)     nodeID: {srcNo},Search
 ├── 过程(SFProc)       nodeID: {srcNo},Proc
 ├── 枚举(SysEnum)      nodeID: local,Enums(仅本机)
 └── 数据同步(Sync)     nodeID: {srcNo},Sync

GetDtls(nodeID) 根据节点后缀分发到不同实体,动态调整列与工具栏按钮;BtnClick 统一处理新建、编辑、删除、属性维护等操作,并通过 EnName 参数路由到具体编辑表单。

2.3 实体模型与数据表

模块实体类数据表职责
数据源SFDBSrcSys_SFDBSrc连接信息、类型、WebApi 结果转换模式
字典SFTableSys_SFTable下拉/树形选项数据定义
查询SFSearchSys_SFSearch参数化结果集查询
过程SFProcSys_SFProc参数化执行与返回
枚举SysEnumMainSys_EnumMain整型/字符串常量集合
同步SyncSys_Sync将查询结果同步到表或实体

所有子能力通过 FK_SFDBSrc(或 DBSrcNo)关联到父数据源;多租户场景下辅以 OrgNo 隔离。

2.4 多态实现:同一能力,多种接入

字典为例,SFTable 是统一抽象,具体实现按接入方式拆分:

实现类适用场景
SFTableSQLNoName / SFTableSQLTreeSQL 编号名称 / 树结构字典
SFTableWebApiNoName / SFTableWebApiTreeWebApi 字典
EnTableNoName / EnTableTree平台实体字典
SFTableBPClass / SFTableHandler / SFTableJS类、Handler、JS 等扩展方式

查询(SFSearchSQL / SFSearchWebApi)、过程(SFProcSQL / SFProcWebApi)同样遵循此模式。

新建时,TreeEns_DBSrc 根据数据源类型选择向导:

  • 本机 → GPN_Local
  • 关系库 → GPN_DBSrcSQL
  • WebApi → GPN_DBSrcWebApi

2.5 运行时执行链路

配置完成后,运行时由后端 BP.Sys.* 服务执行:

前端实体.GenerData() / BSEntity.DoMethodReturnJSON()
        ↓
后端 BP.Sys.SFTable / SFSearch / SFProc
        ↓
按 FK_SFDBSrc 选择连接 → 执行 SQL / 调用 WebApi
        ↓
返回 JSON → 表单下拉 / Pop 填充 / 流程事件

表达式支持系统变量与参数占位,例如:

  • ~@Key~~@WebUser.No~(SQL 字典)
  • @Token@WebUser.No@WorkID(WebApi 路径与 POST 体)

2.6 与上层应用的集成点

数据源能力被表单、流程等模块引用式消费,而非硬编码:

  • 表单字段 UIBindKey 绑定枚举或字典编号
  • 查询支持 AddSln 将返回列智能映射到表单字段(SFColumnSln
  • 过程支持 SFParaSln 将参数映射到表单属性
  • 数据同步以 SFSearch 为数据源,定时或手动写入目标表/实体

三、核心概念说明

以下定义与官方数据源文档保持一致。

3.1 数据源类型

类型说明典型用途
本机数据源ccfast 默认数据库,local 为内置编号枚举、系统字典、平台内表数据
关系数据库数据源通过连接串访问外部 RDBMSERP、历史库、报表库
WebApi 数据源通过 HTTP 协议与参数获取数据第三方 SaaS、微服务、开放接口

3.2 四类数据能力

枚举(SysEnum)

用户定义的命名常量集合,由一组整型或字符串键值组成。

  • 示例:性别 0=女、1=男;政治面貌 0=群众、1=团员、2=党员
  • 支持 Int / String 两种类型,可配置显示颜色
  • 仅挂载于本机数据源,存储在 Sys_EnumMain / Sys_Enums
  • 删除前会检查 MapAttr.UIBindKey 引用,防止破坏已发布表单
字典(SFTable)

用于下拉框、级联选择、树形选择的数据结构。

结构字段要求示例
编码字典编号 + 名称城市、角色类型、产品类型
树结构字典编号 + 名称 + 父节点编号部门、菜单、分类

支持无参/有参;有参时通过 SelectStatement 中的占位符实现级联,如按省份过滤城市。

查询(SFSearch)

输入参数,返回结果集

类型说明示例
实体查询(单行)ResultNum = 1按客户编号取客户详情
集合查询(多行)ResultNum = 0人员列表、车辆台账、客户关系表

支持参数定义(SFParas)、返回列定义(SFColumns)及与表单字段的映射方案。

过程(SFProc)

输入参数,执行并返回结果,侧重「动作」而非「读取」。

  • 示例:账户注销、出入库、修改密码、作废单据
  • 支持 GET / POST(WebApi)
  • 常用于流程事件、节点事件中的业务调用
数据同步(Sync)— 扩展能力

以已配置的查询为数据来源,按规则写入:

  • 同步到数据库表 / 后端实体 / 前端实体
  • 清空方式或追加方式
  • 可配置定时任务规则(GPE_AutoSync

四、典型应用场景

4.1 枚举

场景说明
表单下拉字段性别、状态、审批结果等固定选项
流程条件判断按枚举值分支
列表显示翻译将存储值转为可读标签
大屏图例 / 状态色配合 EnableColor 做可视化区分

特点:值域稳定、变更少、无需访问外部系统,适合本机维护。

4.2 字典

场景说明
表单下拉框部门、岗位、产品类型
级联下拉省 → 市 → 区,一级选项驱动下一级 SQL/API
树形选择器组织架构、产品分类
接收人规则流程按部门/角色字典解析处理人
外部主数据通过 WebApi 字典对接第三方编码表

特点:选项来自业务主数据,可能随组织、权限、上下文变化;支持动态参数。

4.3 查询

场景说明
Pop 弹窗选择从客户/物料库中选一条或多条
装载填充选客户后自动带出地址、联系人
从表填充主表选订单,从表加载明细行
实体查询根据单号加载一条完整业务记录
大屏 / 报表数据源多行集合查询驱动图表与列表
数据同步源Sync 模块的数据输入

特点:面向,返回结构化数据集;实体查询与集合查询分别服务「详情回填」与「列表展示」。

4.4 过程

场景说明
流程节点事件审批通过后调用 ERP 过账接口
流程结束事件触发库存扣减、积分变更
表单按钮保存前校验、作废、密码修改
与外部系统写操作创建第三方工单、注销账户

特点:面向写/执行,强调副作用与事务性操作;参数通常来自表单字段或流程上下文。

4.5 组合示例

请假流程
  ├── 枚举:请假类型(事假/病假/年假)
  ├── 字典:申请人部门(树结构,本机 SQL)
  ├── 查询:年假余额(实体查询,按工号返回剩余天数)
  └── 过程:同步考勤系统(WebApi POST,流程结束时调用)

五、设计优点

5.1 统一抽象,降低集成成本

流程、表单、大屏只需认识「枚举 / 字典 / 查询 / 过程」四类接口,无需关心底层是 SQL 还是 HTTP。更换对接方式时,多数情况下只需调整数据源配置,上层绑定关系可保持不变。

5.2 连接与定义分离

SFDBSrc 管理连接,SFTable / SFSearch / SFProc 管理业务语义。同一 ERP 连接下可配置 dozens 个字典与查询,避免连接信息重复维护。

5.3 多态扩展清晰

通过 EnName + 独立实体类(如 SFTableSQLNoNameSFTableWebApiNoName)实现编辑表单的差异化,公共字段收敛在基类实体,扩展新型接入时模式可复制。

5.4 参数化与上下文注入

统一支持 ~@Key~@WebUser.No@Token@WorkID 等占位符,使级联、权限过滤、流程上下文传递可在配置层完成,减少定制代码。

5.5 与低代码体系深度耦合

  • 查询/过程的 AddSln 可自动映射到表单字段
  • 枚举删除前检查表单引用
  • 字典创建时可指定默认字段名(FK_Val),加速表单设计

5.6 多租户友好

OrgNo 贯穿字典、查询、过程、同步;枚举在集团/SAAS 模式下支持组织隔离与共享策略。


六、设计局限与改进方向

6.1 树节点为 UI 层虚拟构造

二级节点(字典/查询/过程等)并非数据库记录,而是由 TreeEns_DBSrc.Init() 动态 push 生成,nodeID 采用 {srcNo},{Type} 字符串拼接。

  • 影响:节点解析逻辑分散在 includes('SFTable') 等字符串判断中,扩展新分类需改多处
  • 建议:可考虑枚举化节点类型,或下沉为配置表驱动

6.2 EnName 路由的多态依赖

编辑入口依赖实体 AtPara.EnName 字段定位具体表单类,缺失时报「数据错误」。

  • 影响:配置不完整时排错成本较高;全局搜索双击行需依次尝试多个实体类型
  • 建议:建立类型注册表,或在一级元数据中显式存储 ItemType

6.3 枚举能力仅限本机

外部系统的码表只能通过字典(WebApi/SQL)模拟,无法使用枚举的轻量配置与颜色能力。

  • 影响:概念上「固定小码表」与「外部码表」路径不统一
  • 建议:文档中明确边界——枚举用于平台内常量,字典用于动态主数据

6.4 表达式能力强大但学习曲线陡

SQL 语句、API 路径、POST JSON、参数别名需同时掌握,对实施人员要求较高。

  • 影响:配置错误往往在运行时暴露
  • 建议:强化 SFTableSQLNoName 等编辑页中的「测试」按钮与 TestParas 用例(现有能力可进一步产品化)

6.5 同步模块与查询耦合

Sync 强依赖 SFSearch 作为数据源,无法直接从字典或过程同步。

  • 影响:部分「字典 → 本地缓存表」场景需先包装为查询
  • 建议:评估是否支持字典直同步,或提供向导自动生成查询

6.6 代码层面的重复检索

部分 GetDtls 分支存在连续两次 Retrieve 调用(如过程、查询节点),属于可优化的实现细节。


七、架构关系图

7.1 模块依赖

上层应用

运行时

四类能力 + 同步

数据源根

管理界面

TreeEns_DBSrc

SFDBSrc

SFDBSrcLocal

SFDBSrcSQL

SFDBSrcWebApi

SFTable 字典

SFSearch 查询

SFProc 过程

SysEnum 枚举

Sync 数据同步

BP.Sys 后端服务

表单

流程

大屏

7.2 数据流

外部系统 BP.Sys 前端实体 表单/流程 外部系统 BP.Sys 前端实体 表单/流程 alt [本机/SQL] [WebApi] 请求字典/查询/过程 GenerData / DoMethodReturnJSON 解析 FK_SFDBSrc 执行 SQL HTTP 请求 结果集/执行结果 JSON 下拉项/填充数据/执行反馈

八、关键代码索引

文件作用
TreeEns_DBSrc.ts树表管理、节点分发、按钮事件
SFDBSrc/SFDBSrc.ts数据源基类、连接测试
SFTable/SFTable.ts字典元数据、GenerData
SFSearch/SFSearch.ts查询元数据、列映射 AddSln
SFProc/SFProc.ts过程元数据、参数映射 AddSln
SysEnum/SysEnumMain.ts枚举注册、SaveDtls
Sync/Sync.ts同步规则、定时配置入口

九、总结

CCFlow 数据源体系以 SFDBSrc 为根、四类能力为枝、多态实体为叶,在单一管理界面中完成了从连接配置到业务数据定义的全链路治理。它将「读」(枚举、字典、查询)与「写」(过程)清晰拆分,又通过统一的参数与上下文机制保持体验一致。

对于实施团队:枚举管常量、字典管选项、查询管数据集、过程管动作——按此分工配置,即可覆盖绝大多数表单与流程的数据交互需求。对于架构评审:优势在于抽象统一与低代码亲和;代价在于配置复杂度与 UI 层虚拟树的可维护性,需在文档、测试工具与类型注册方面持续加强。


参考文档:数据源设置 DBSrc(腾讯文档)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

驰骋低代码、工作流、表单引擎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值