datai/docs/archive/changelog/2026-01-27-013-2-changelog.md

52 lines
2.8 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.

# 变更日志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)