52 lines
2.8 KiB
Markdown
52 lines
2.8 KiB
Markdown
# 变更日志:REQ-013-2 Apex 动态代码执行与日志管理
|
||
|
||
## 元数据
|
||
- 需求编号:REQ-013-2
|
||
- 创建时间:2026-01-27
|
||
- 创建人:AI Assistant
|
||
- 版本号:v1.0.0
|
||
|
||
## 变更概述
|
||
实现 Apex 代码的动态执行与日志管理功能。作为无状态 API 代理,封装 Salesforce SOAP API 的 `executeAnonymous` 调用,支持设置调试级别、解析执行结果、处理编译与运行时异常,并提供结构化的日志对象。
|
||
|
||
## 变更内容
|
||
### 新增功能
|
||
- **Apex 动态执行服务**:
|
||
- 实现 `ApexExecutorService` 接口及其实现类,封装 SOAP API 调用。
|
||
- 支持通过 `DebuggingOptions` 配置详细的日志级别(映射 SOAP `DebuggingHeader`)。
|
||
- 统一封装执行结果为 `ExecuteResult`,包含成功状态、编译标志、调试日志、异常信息及执行时间。
|
||
|
||
- **日志解析能力**:
|
||
- 定义 `LogParser` 接口,提供从原始日志中提取关键信息的标准方法。
|
||
- 实现默认的正则解析器 `LogParserImpl`,支持提取 `USER_DEBUG` 和资源限制信息 (`LIMIT_USAGE`)。
|
||
|
||
- **异常处理机制**:
|
||
- 定义 `ApexCompilationException` 处理编译时错误,包含行列号及具体问题描述。
|
||
- 定义 `ApexConnectionException` 处理网络或认证层面的系统异常。
|
||
- 运行时异常(如 DmlException)被捕获并封装在 `ExecuteResult` 中,不抛出异常,便于前端展示。
|
||
|
||
### 新增代码文件
|
||
- `datai-salesforce-apex/src/main/java/com/datai/apex/model/DebuggingOptions.java`
|
||
- `datai-salesforce-apex/src/main/java/com/datai/apex/model/ExecuteResult.java`
|
||
- `datai-salesforce-apex/src/main/java/com/datai/apex/log/LogParser.java`
|
||
- `datai-salesforce-apex/src/main/java/com/datai/apex/log/impl/LogParserImpl.java`
|
||
- `datai-salesforce-apex/src/main/java/com/datai/apex/core/ApexExecutorService.java`
|
||
- `datai-salesforce-apex/src/main/java/com/datai/apex/core/impl/ApexExecutorServiceImpl.java`
|
||
- `datai-salesforce-apex/src/test/java/com/datai/apex/core/ApexExecutorServiceTest.java`
|
||
|
||
### 新增文档
|
||
- [需求文档](../requirements/REQ-013-2.md)
|
||
- [设计文档](../design/2026-01-27-013-2-Apex动态代码执行与日志管理设计.md)
|
||
- [决策记录](../decisions/adr/2026-01-27-013-2-ADR-Apex动态执行技术选型.md)
|
||
- [提示词](../prompts/2026-01-27-013-2-prompt-Apex动态代码执行与日志管理.md)
|
||
- [会话记录](../sessions/2026-01-27-013-2-session.md)
|
||
|
||
## 影响范围
|
||
- **模块**:`datai-salesforce-apex`
|
||
- **功能**:Apex 代码执行与调试
|
||
- **依赖**:新增对 `com.force.api:force-wsc` 和 `com.force.api:force-partner-api` (及相关 stub) 的运行时依赖。
|
||
|
||
## 相关文档
|
||
- [需求文档](../requirements/REQ-013-2.md)
|
||
- [设计文档](../design/2026-01-27-013-2-Apex动态代码执行与日志管理设计.md)
|