4.5 KiB
4.5 KiB
需求文档
元数据
- 需求编号:002
- 创建时间:2026-01-28
- 创建人:AI Assistant
- 状态:进行中
- 优先级:高
需求概述
在 datai-salesforce-apex 模块中实现 Salesforce Apex API 的完整功能,提供对 Salesforce 源 org(Source Org)的 Apex 代码编译、执行和测试能力,包括代码编译、测试执行、代码覆盖率、Flow 覆盖率、日志记录、WSDL 转换等功能。
目标
- 实现 Apex API 的所有核心功能,提供完整的 Apex 代码操作能力
- 集成
datai-salesforce-auth模块的会话管理功能 - 提供 REST API 接口,支持外部系统调用
- 创建数据库表,存储编译结果、测试结果等数据
- 默认实现源 org(Source 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 中的现有类
- 如果确实有需求需要使用自定义类,则新增
- 新增前需要严格判断必要性
数据库设计原则
- 需要创建表存储编译结果、测试结果等数据
- 表结构在设计阶段确定
- 支持历史记录查询和统计分析
成功标准
- 功能完整性: 所有 Apex API 核心功能都已实现并通过测试
- 认证集成: 成功集成 SessionManager,能够获取 Session ID 和 Server URL
- API 接口: 提供 REST API 接口,支持外部系统调用
- 数据存储: 成功创建数据库表,能够存储和查询编译结果、测试结果等数据
- 异常处理: 正确处理各种异常情况,使用合适的异常类
- 代码质量: 代码符合项目规范,无编译错误和警告