本文说明 Ai-DOP 数据中台与 MES/WMS APP 所使用 SQL Server 的连接配置、同步实体配置、运行时建连方式及与 T8 数据源配置的区别。
安全约束:本文不记录数据库密码、令牌等敏感凭据。密码必须通过带外方式注入,不得写入 Git。
| 项目 | 内容 |
|---|---|
| 数据中台业务库 | MySQL aidopdev |
| MES/WMS SQL Server 数据库 | dopdemorq |
| 数据源编码 | DOPDEMORQ_SQLSERVER |
| 初始登记状态 | status=0,默认停用 |
| 主要用途 | MES/WMS 业务表入站同步、实时回读,以及经 Outbox 执行获准的业务回写 |
MES 与 WMS APP 共用的业务数据位于 dopdemorq。数据中台不是通过
appsettings.json 或 Database.json 中的固定连接串访问该库,而是从
MySQL 配置表 mdp_source 读取连接信息并动态创建 SQL Server 连接。
mdp_source实际生效的连接信息存放在 aidopdev.mdp_source:
| 字段 | 含义 |
|---|---|
source_code |
数据源唯一编码,MES/WMS 使用 DOPDEMORQ_SQLSERVER |
source_type |
DB |
status |
1 表示启用,0 表示停用 |
db_type |
SQLSERVER |
db_host / db_port |
SQL Server 地址和端口 |
db_name |
数据库名 dopdemorq |
db_user |
数据库账号 |
db_password_enc |
数据库密码或系统密文,必须带外注入 |
db_extra_params |
连接串附加参数 |
初始登记脚本:
server/Admin.NET.Web.Entry/UpdateScripts/1.0.268.sql
该脚本登记 DOPDEMORQ_SQLSERVER,但默认将数据源设为停用,并将
db_password_enc 留空,避免凭据进入代码仓库。
当前环境是否已经启用,应以数据库实时配置为准:
SELECT source_code, source_name, source_type, status,
db_type, db_host, db_port, db_name, db_user,
health_status, last_health_check, health_msg
FROM mdp_source
WHERE source_code = 'DOPDEMORQ_SQLSERVER';
不得在查询结果、日志或文档中输出 db_password_enc。
mdp_entity同步哪些源表、写入哪些贴源表、采用全量还是增量同步,均由
aidopdev.mdp_entity 配置。主要字段如下:
| 字段 | 含义 |
|---|---|
source_id |
关联 mdp_source.id |
entity_code |
同步实体编码,SQL Server 实体通常以 _SQLSERVER 结尾 |
source_table_name |
MES/WMS SQL Server 源表 |
target_table_name |
Ai-DOP 数据中台贴源表 |
sync_mode |
FULL 或 INCR |
incr_column |
增量水位字段,如 UpdateTime、CreateTime |
batch_size |
单批抽取数量 |
biz_key_expr |
业务去重键 |
status |
当前实体是否启用 |
last_sync_to |
最近成功推进的同步水位 |
MES/WMS 扩展实体的主要登记脚本:
server/Admin.NET.Web.Entry/UpdateScripts/1.0.300.sql
其中包括标签、库存、库位、物料、供应商等 SQL Server 入站实体。例如:
| 实体编码 | SQL Server 源表 | 数据中台贴源表 |
|---|---|---|
S5_LABEL_MISSEDPRINT_SQLSERVER |
MissedPrint |
mdp_stg_label |
S5_INV_MASTER_SQLSERVER |
InvMaster |
mdp_stg_inventory |
S5_INV_TRANS_HIST_SQLSERVER |
InvTransHist |
mdp_stg_inv_trans |
S5_LOCATION_DETAIL_SQLSERVER |
LocationDetail |
mdp_stg_inventory |
S5_LOCATION_MASTER_SQLSERVER |
LocationMaster |
mdp_stg_location |
S3_ITEM_MASTER_SQLSERVER |
ItemMaster |
mdp_stg_item |
S3_SUPPLIER_SQLSERVER |
SuppMaster |
mdp_stg_supplier |
查看当前已登记实体:
SELECT e.entity_code, e.entity_name, e.status,
e.source_table_name, e.target_table_name,
e.sync_mode, e.incr_column, e.batch_size,
e.last_cursor, e.last_sync_to
FROM mdp_entity e
JOIN mdp_source s ON s.id = e.source_id
WHERE s.source_code = 'DOPDEMORQ_SQLSERVER'
ORDER BY e.entity_code;
动态连接工厂位于:
server/Plugins/Admin.NET.Plugin.AiDOP/DataPlatform/MdpSourceScopeFactory.cs
处理过程为:
DOPDEMORQ_SQLSERVER 请求连接;mdp_source 记录;db_type、主机、端口、库名、账号和密码组装连接串;mdp-src-DOPDEMORQ_SQLSERVER 为 ConfigId 注册 SqlSugar 连接;数据源不存在或 status!=1 时,工厂会直接报错,不会自动回落到其他数据库。
MES/WMS SQL Server(dopdemorq)
→ MdpSourceScopeFactory 动态建连
→ MdpDbPullExecutor 分页/增量抽取
→ MdpStagingWriter 写入 mdp_stg_*
→ 转换服务生成 mdp_std_* / dwd_* 等读模型
→ Ai-DOP 页面、业务服务和指标消费
主要执行器:
DataPlatform/Executors/MdpDbPullExecutor.csDataPlatform/Executors/MdpStagingWriter.csDataPlatform/Executors/MdpModuleStagingPuller.cs获准的业务回写通常采用以下链路:
Ai-DOP 业务操作
→ mdp_outbox
→ MdpTargetPushDispatcher
→ MdpDbPushExecutor
→ MES/WMS SQL Server
回写不得绕过 Outbox 直接散落在业务服务中。只读抽数账号与回写账号应按最小权限原则分离;若使用独立写账号,应登记独立数据源编码。
Database.json 的区别文件:
server/Admin.NET.Application/Configuration/Database.json
其中固定登记的 SQL Server ConfigId=t8_v5 是 T8 ERP 源库,用于
S5/S6/S7 KPI 等 T8 数据贴源同步,不是 MES/WMS APP 的 dopdemorq
连接配置。
| 数据源 | 配置方式 | 用途 |
|---|---|---|
DOPDEMORQ_SQLSERVER |
aidopdev.mdp_source 动态配置 |
MES/WMS APP 业务库 |
t8_v5 / T8_V5_SQLSERVER |
Database.json 固定连接兼容动态源 |
T8 ERP/KPI 数据 |
WMS_API |
mdp_source API 类型配置 |
WMS API/Mock 双模式链路 |
因此,调整 MES/WMS SQL Server 连接时,不应修改 Database.json 中的
T8 连接项。
mdp_source.DOPDEMORQ_SQLSERVER 是否存在且 status=1;source_type 是否为 DB、db_type 是否为 SQLSERVER;db_password_enc 是否已通过安全方式注入;health_msg 是否有连接或权限错误;mdp_entity 是否为 status=1;last_sync_to 是否持续推进;incr_column 是否存在且水位语义可靠;server/Admin.NET.Web.Entry/UpdateScripts/1.0.268.sqlserver/Admin.NET.Web.Entry/UpdateScripts/1.0.300.sqlserver/Plugins/Admin.NET.Plugin.AiDOP/DataPlatform/MdpSourceScopeFactory.csserver/Plugins/Admin.NET.Plugin.AiDOP/Entity/DataPlatform/MdpSource.csdoc/plan/旧DOP-MES-WMS/README.mddoc/plan/旧DOP-MES-WMS/对接任务书/README.mddoc/plan/旧DOP-MES-WMS/对接任务书/WP1-入站抽数补齐.mddoc/plan/旧DOP-MES-WMS/对接任务书/WP3-回写执行器.md