# 数据缓存
# 一. 需求场景
实现将第三方系统(演示中使用SQL Server模拟SAP)的供应商数据定时同步到本地缓存表(idemo_vendor_cache)。
- 实时查询痛点:频繁访问外部系统(如SAP)导致性能瓶颈
 - 缓存价值:将第三方数据定时同步到本地数据库,提升查询效率
 - 传统方案:需开发同步程序(代码量大、维护成本高)
 - ESB方案:通过可视化配置实现免编程数据同步
 
# 二、准备工作
# 1. 缓存表设计(示例)
//确保已创建缓存表 `idemo_vendor_cache`
CREATE TABLE idemo_vendor_cache (
    vendor_code VARCHAR(50) PRIMARY KEY,
    name        VARCHAR(100),
    contact     VARCHAR(50),
    mobile      VARCHAR(20),
    bu          VARCHAR(50)
)
# 2. 关键字段说明
| 字段名 | 类型 | 对应源数据 | 
|---|---|---|
| vendor_code | 字符串 | SAP供应商ID | 
| name | 字符串 | 供应商名称 | 
| contact | 字符串 | 联系人 | 
| mobile | 字符串 | 联系电话 | 
| bu | 字符串 | 所属大区 | 
# 三. 配置步骤
# 3.1 创建ESB输出流
- 进入ESB管理界面 → "流程库" → "ESB输出流"
 - 点击"添加"新建ESB流程
 
# 3.2 配置数据提取节点
- 拖入
SqlServer Select节点(实际生产替换为SAP节点) - 常规配置:
- 连接:选择源数据库(示例用DemoData)
 - SQL:
SELECT * FROM idemo_vendor 
 
 ▲ 配置SQL语句
- 返回配置:
- 右键Variables → 编辑 → 添加变量:
- 变量名:
vendors - 类型:对象数组
 
 - 变量名:
 - 编辑变量结构:
{ "code": "字符串", "name": "字符串", "contact": "字符串", "mobile": "字符串", "bu": "字符串" } - 字段映射:将查询结果字段连线到变量对应字段
 
 - 右键Variables → 编辑 → 添加变量:
 
 ▲ 返回配置
- (高级)可直接使用整体赋值:
vendors: Result.rows 
# 3.3 配置缓存节点
- 拖入
SqlServer Cache节点 - 常规配置:
- 连接:选择目标数据库(示例用DemoData)
 - 缓存到表:选择
idemo_vendor_cache 
 
 ▲ 配置缓存表
- 调用配置:
- 将
vendors变量的各字段连线到缓存表对应字段 
 - 将
 
 ▲ 调用配置
- (高级)若结构一致可直接整体映射
idemo_vendor_cache: Variables.vendors 
# 3.4 保存ESB
- 点击保存按钮
 - 命名示例:"数据缓存"
 
 ▲ 数据缓存示例图
# 四. 执行方式
# 方式1:定时任务
- 创建定时流程
 - 添加"调用ESB"节点选择本ESB
 
 ▲ 定时任务调用数据缓存ESB
# 方式2:手动测试
- 创建测试流程
 - 添加"调用ESB"节点选择本ESB
 - 手动执行流程
 
 ▲ 手动发起调用数据缓存ESB
# 五. 注意事项
- 生产环境应将SQL查询替换为真实的SAP数据源节点
 - 大数据量同步建议分批处理
 - 缓存表建议建立适当索引
 
# 附录:表结构对照示例
| 源字段 | 变量字段 | 目标表字段 | 
|---|---|---|
| code | code | vendor_code | 
| name | name | name | 
| contact | contact | contact | 
| mobile | mobile | mobile | 
| bu | bu | bu | 
← 跨系统数据合并 如何让业务人员使用数据源 →