datai/datai-scenes/datai-scene-salesforce/docs/requirements/2026-01-28-002-ApexAPI源org实现.md

4.5 KiB
Raw Permalink Blame History

需求文档

元数据

  • 需求编号002
  • 创建时间2026-01-28
  • 创建人AI Assistant
  • 状态:进行中
  • 优先级:高

需求概述

datai-salesforce-apex 模块中实现 Salesforce Apex API 的完整功能,提供对 Salesforce 源 orgSource Org的 Apex 代码编译、执行和测试能力包括代码编译、测试执行、代码覆盖率、Flow 覆盖率、日志记录、WSDL 转换等功能。

目标

  1. 实现 Apex API 的所有核心功能,提供完整的 Apex 代码操作能力
  2. 集成 datai-salesforce-auth 模块的会话管理功能
  3. 提供 REST API 接口,支持外部系统调用
  4. 创建数据库表,存储编译结果、测试结果等数据
  5. 默认实现源 orgSource Org类型的数据操作

功能需求

核心功能

1. Apex 代码编译和执行

  • CompileClasses: 编译 Apex 类
  • CompileTriggers: 编译 Apex 触发器
  • CompileAndTest: 编译并运行测试
  • ExecuteAnonymous: 执行匿名 Apex 代码

2. 测试执行

  • RunTests: 运行 Apex 测试
  • RunTestsRequest: 测试请求参数
  • RunTestsResult: 测试执行结果
  • RunTestSuccess: 测试成功结果
  • RunTestFailure: 测试失败结果

3. 代码覆盖率

  • CodeCoverageResult: 代码覆盖率结果
  • CodeCoverageWarning: 代码覆盖率警告
  • CodeLocation: 代码位置信息

4. Flow 覆盖率

  • FlowCoverageResult: Flow 覆盖率结果
  • FlowCoverageWarning: Flow 覆盖率警告

5. 日志记录

  • LogInfo: 日志信息
  • LogType: 日志类型
  • LogCategory: 日志分类
  • LogCategoryLevel: 日志级别

6. WSDL 转换

  • WsdlToApexInfo: WSDL 到 Apex 转换信息
  • WsdlToApexResult: WSDL 转换结果

7. 编译结果

  • CompileClassResult: Apex 类编译结果
  • CompileTriggerResult: Apex 触发器编译结果
  • CompileIssue: 编译问题信息

8. 连接管理

  • Connector: 连接工厂类,用于创建 SoapConnection 实例
  • SoapConnection: SOAP 连接类,负责与 Salesforce Apex API 通信

次要功能

  • SOAP 头部设置SessionHeader、CallOptions、DebuggingHeader 等)
  • 错误处理和异常管理
  • 结果封装和返回

非功能需求

性能要求

  • 暂不考虑连接池、并发控制、缓存等性能优化
  • 每次调用都创建新连接

安全要求

  • 集成 datai-salesforce-auth 模块的会话管理
  • 使用 SessionManager 获取 Session ID 和 Server URL
  • 优先使用 datai-salesforce-common 模块中的现有异常

兼容性要求

  • 支持 Salesforce Apex API v65.0
  • 兼容 Java 22
  • 兼容 Spring Boot 框架

数据存储要求

  • 创建数据库表存储编译结果、测试结果等数据
  • 支持历史记录查询
  • 支持结果统计和分析

技术约束

必须使用的框架或库

  • apex.jar: Salesforce Apex API 客户端Connector、SoapConnection、RunTestsRequest、ExecuteAnonymousResult 等)
  • datai-salesforce-auth: 使用 SessionManager 管理会话
  • datai-salesforce-common: 使用现有异常类

必须遵循的设计模式

  • Service 层模式:提供业务逻辑封装
  • Controller 层模式:提供 REST API 接口
  • 直接使用 apex.jar 中的现有类,不进行不必要的二次封装

必须继承的基类

  • 无特殊基类要求

自定义类原则

  • 优先使用 apex.jar 中的现有类
  • 如果确实有需求需要使用自定义类,则新增
  • 新增前需要严格判断必要性

数据库设计原则

  • 需要创建表存储编译结果、测试结果等数据
  • 表结构在设计阶段确定
  • 支持历史记录查询和统计分析

成功标准

  1. 功能完整性: 所有 Apex API 核心功能都已实现并通过测试
  2. 认证集成: 成功集成 SessionManager能够获取 Session ID 和 Server URL
  3. API 接口: 提供 REST API 接口,支持外部系统调用
  4. 数据存储: 成功创建数据库表,能够存储和查询编译结果、测试结果等数据
  5. 异常处理: 正确处理各种异常情况,使用合适的异常类
  6. 代码质量: 代码符合项目规范,无编译错误和警告

相关文档