datai/docs/archive/sessions/20260117-metadata-retrieve-deploy.md

2.9 KiB
Raw Permalink Blame History

会话记录:元数据拉取和部署功能实现

现状

已完成元数据拉取和部署功能的需求定义、方案决策和提示词资产化,现开始进入代码实现阶段。

目标

实现 Salesforce 元数据的拉取和部署功能,支持全量/增量部署、验证、单元测试以及破坏性变更,提高元数据管理效率。

执行过程

步骤 1创建项目结构

创建了元数据模块的基本目录结构:

src/main/java/com/datai/metadata/
├── controller      # 控制器层
├── service         # 服务层接口
├── service/impl    # 服务层实现
├── model           # 实体类
└── utils           # 工具类

步骤 2实现实体类

根据架构决策中定义的数据库表结构,实现了以下实体类:

  1. SfOrgConfigSalesforce 组织配置表,存储所有需要连接的 Salesforce 环境信息
  2. SfMetadataTask:元数据任务定义表,定义具体的拉取规则
  3. SfJobExecution:作业执行流水表,记录每一次拉取动作的实例
  4. SfMetadataComponent:元数据组件详情表,将拉取下来的文件进行“结构化”存储
  5. SfDeployHistory:部署历史表,记录从 OSS 把文件推回 Salesforce 的记录

步骤 3更新依赖

更新了 pom.xml 文件,添加了必要的依赖:

  • Spring Boot Starter Web
  • Lombok
  • Salesforce WSC (Web Service Connector)
  • Salesforce Metadata API
  • Apache Commons Lang
  • Apache Commons IO
  • Quartz Scheduler
  • Jackson Databind

下一步计划

  1. 实现服务层接口和实现类
  2. 实现 Salesforce API 调用工具类
  3. 实现控制器层
  4. 实现定时任务
  5. 实现异步处理机制
  6. 实现部署结果解析
  7. 实现快速部署功能

风险与问题

  1. 技术风险Salesforce API 版本变更可能导致兼容性问题
  2. 性能风险:异步处理机制可能引入复杂的并发问题
  3. 依赖风险Salesforce WSC 和 Metadata API 依赖可能存在版本冲突

解决措施

  1. 定期检查 Salesforce API 文档,及时更新依赖版本
  2. 采用成熟的异步处理框架,如 Spring 异步注解或消息队列
  3. 详细测试不同版本依赖的兼容性,选择稳定版本

验收标准

  1. 成功拉取 Salesforce 元数据
  2. 成功部署元数据到目标组织
  3. 支持全量/增量部署、验证、单元测试和破坏性变更
  4. 提供详细的部署结果和错误信息
  5. 支持使用验证 ID 进行快速部署
  6. 拉取和部署操作异步处理,不阻塞请求线程
  7. 所有 Salesforce 认证信息加密存储
  8. 系统能够处理 API 调用失败和重试

参考文档

  1. 需求文档 - 元数据拉取和部署功能实现
  2. 架构决策 - 元数据拉取和部署功能架构决策
  3. 提示词文档 - 元数据拉取和部署功能实现提示词