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

130 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 需求文档
## 元数据
- 需求编号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. **代码质量**: 代码符合项目规范,无编译错误和警告
## 相关文档
- [子需求索引](./sub/index.md) - 子需求文档索引
- [设计文档](../design/2026-01-28-002-ApexAPI源org实现设计.md) - 待创建
- [决策记录](../decisions/adr/2026-01-28-002-ADR-ApexAPI源org实现技术选型.md) - 待创建
- [参考文档](../reference-code/sforce/docs/apex-module.md) - Apex API 功能说明