130 lines
4.5 KiB
Markdown
130 lines
4.5 KiB
Markdown
# 需求文档
|
||
|
||
## 元数据
|
||
- 需求编号:002
|
||
- 创建时间:2026-01-28
|
||
- 创建人:AI Assistant
|
||
- 状态:进行中
|
||
- 优先级:高
|
||
|
||
## 需求概述
|
||
在 `datai-salesforce-apex` 模块中实现 Salesforce Apex API 的完整功能,提供对 Salesforce 源 org(Source Org)的 Apex 代码编译、执行和测试能力,包括代码编译、测试执行、代码覆盖率、Flow 覆盖率、日志记录、WSDL 转换等功能。
|
||
|
||
## 目标
|
||
1. 实现 Apex API 的所有核心功能,提供完整的 Apex 代码操作能力
|
||
2. 集成 `datai-salesforce-auth` 模块的会话管理功能
|
||
3. 提供 REST API 接口,支持外部系统调用
|
||
4. 创建数据库表,存储编译结果、测试结果等数据
|
||
5. 默认实现源 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 中的现有类
|
||
- 如果确实有需求需要使用自定义类,则新增
|
||
- 新增前需要严格判断必要性
|
||
|
||
### 数据库设计原则
|
||
- 需要创建表存储编译结果、测试结果等数据
|
||
- 表结构在设计阶段确定
|
||
- 支持历史记录查询和统计分析
|
||
|
||
## 成功标准
|
||
|
||
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 功能说明
|