145 lines
8.6 KiB
Markdown
145 lines
8.6 KiB
Markdown
# 会话记录
|
||
|
||
## 元数据
|
||
- 需求编号:002
|
||
- 开始时间:2026-01-28
|
||
- 结束时间:2026-01-28
|
||
- 当前阶段:阶段 1:需求定义与入库
|
||
|
||
## 需求澄清记录
|
||
|
||
### 原始需求
|
||
严格遵守项目规则,现在我有个需求,想将 `d:\idea_demo\datai\datai-scenes\datai-scene-salesforce\docs\reference-code\sforce\docs\apex-module.md` 中的功能结合当前模块的实际情况,在 `d:\idea_demo\datai\datai-scenes\datai-scene-salesforce\datai-salesforce-apex` 模块下进行实现,默认实现源org类型
|
||
|
||
### 第一轮澄清
|
||
**AI 提问**:
|
||
1. 这个功能的核心目标是什么?
|
||
2. 这个功能涉及哪些业务场景?
|
||
3. 这个功能需要支持哪些用户角色?
|
||
4. 功能边界:根据 `apex-module.md` 文档,Apex API 包含以下功能模块,您确认全部实现吗?(Apex 代码编译和执行、测试执行、代码覆盖率、Flow 覆盖率、日志记录、WSDL 转换、编译结果)
|
||
5. 使用场景:这个模块的主要使用场景是什么?
|
||
6. 用户角色:谁会使用这个模块?
|
||
7. 依赖包:我看到 `datai-salesforce-apex/src/main/resources/lib/apex.jar` 已经存在,这个是 Salesforce 官方的 Apex API 客户端吗?我们需要基于这个包进行封装吗?
|
||
8. 认证集成:与 Partner API 模块类似,是否也需要使用 `datai-salesforce-auth` 的 SessionManager 管理会话?
|
||
9. 模块设计:是否需要独立的 Controller 层?还是只提供 Service 层?是否需要数据库表?
|
||
10. 异常处理:是否需要自定义异常类?还是使用 `datai-salesforce-common` 模块中的现有异常?
|
||
11. 日志记录:是否需要记录 API 调用日志?还是暂不考虑?
|
||
12. 性能相关:连接、并发、缓存等性能相关是否暂不考虑?
|
||
|
||
**用户回答**:
|
||
1、在 datai-salesforce-apex 模块中实现 Apex API 的全部功能,对于源 org(Source Org)
|
||
2、全部实现
|
||
3、主要使用场景 `d:\idea_demo\datai\datai-scenes\datai-scene-salesforce\docs\reference-code\sforce\docs\apex-module.md` 文档中所有的场景
|
||
4、也需要使用 datai-salesforce-auth 的 SessionManager 管理会话
|
||
5、需要独立的 Controller 层
|
||
6、需要数据库表(存储编译结果、测试结果等),实际当前模块中需要储存下来的数据,创建个表进行存储
|
||
7、使用 datai-salesforce-common 模块中的现有异常,没有则自定义
|
||
8、日志、性能相关暂不考虑
|
||
|
||
### 澄清总结
|
||
- **功能范围**:实现 Apex API 的所有功能模块(Apex 代码编译和执行、测试执行、代码覆盖率、Flow 覆盖率、日志记录、WSDL 转换、编译结果、连接管理)
|
||
- **业务流程**:用户调用 REST API → Service 层处理 → 使用 apex.jar 调用 Salesforce API → 存储结果到数据库 → 返回结果
|
||
- **数据交互**:需要创建数据库表存储编译结果、测试结果等数据
|
||
- **性能要求**:暂不考虑连接池、并发控制、缓存等性能优化
|
||
- **安全要求**:集成 `datai-salesforce-auth` 模块的会话管理,使用 SessionManager 获取 Session ID 和 Server URL
|
||
- **兼容性要求**:支持 Salesforce Apex API v65.0,兼容 Java 22 和 Spring Boot
|
||
- **数据存储要求**:需要创建表存储编译结果、测试结果等数据,支持历史记录查询和统计分析
|
||
|
||
## 需求描述
|
||
在 `datai-salesforce-apex` 模块中实现 Salesforce Apex API 的完整功能,提供对 Salesforce 源 org(Source Org)的 Apex 代码编译、执行和测试能力,包括代码编译、测试执行、代码覆盖率、Flow 覆盖率、日志记录、WSDL 转换等功能。
|
||
|
||
## 执行阶段
|
||
|
||
### 阶段 1:需求定义与入库
|
||
- 状态:已完成
|
||
- 生成文档:[需求文档](../requirements/2026-01-28-002-ApexAPI源org实现.md)
|
||
- 关键决策:
|
||
- 实现所有 Apex API 功能模块
|
||
- 使用 SessionManager 管理会话
|
||
- 提供 Service 层和 Controller 层
|
||
- 创建数据库表存储编译结果、测试结果等数据
|
||
- 直接使用 apex.jar 中的现有类
|
||
- 优先使用 datai-salesforce-common 模块中的现有异常
|
||
- 暂不考虑性能优化(连接池、并发控制、缓存)
|
||
|
||
### 阶段 2:方案设计
|
||
- 状态:未开始
|
||
|
||
### 阶段 3:方案决策
|
||
- 状态:未开始
|
||
|
||
### 阶段 4:数据库结构
|
||
- 状态:未开始
|
||
|
||
### 阶段 5:提示词生成
|
||
- 状态:未开始
|
||
|
||
### 阶段 6:代码生成
|
||
- 状态:未开始
|
||
|
||
### 阶段 7:会话记录
|
||
- 状态:进行中
|
||
|
||
### 阶段 8:变更日志
|
||
- 状态:未开始
|
||
|
||
### 阶段 9:复盘与接口
|
||
- 状态:未开始
|
||
|
||
### 阶段 10:代码提交
|
||
- 状态:未开始
|
||
|
||
## 对话记录
|
||
|
||
**用户**:严格遵守项目规则,现在我有个需求,想将 `d:\idea_demo\datai\datai-scenes\datai-scene-salesforce\docs\reference-code\sforce\docs\apex-module.md` 中的功能结合当前模块的实际情况,在 `d:\idea_demo\datai\datai-scenes\datai-scene-salesforce\datai-salesforce-apex` 模块下进行实现,默认实现源org类型
|
||
|
||
**AI**:我理解您的需求。在创建需求文档前,我需要先澄清一些问题:
|
||
|
||
**第一轮澄清**:
|
||
1. 这个功能的核心目标是什么?
|
||
2. 这个功能涉及哪些业务场景?
|
||
3. 这个功能需要支持哪些用户角色?
|
||
4. 功能边界:根据 `apex-module.md` 文档,Apex API 包含以下功能模块,您确认全部实现吗?(Apex 代码编译和执行、测试执行、代码覆盖率、Flow 覆盖率、日志记录、WSDL 转换、编译结果)
|
||
5. 使用场景:这个模块的主要使用场景是什么?
|
||
6. 用户角色:谁会使用这个模块?
|
||
7. 依赖包:我看到 `datai-salesforce-apex/src/main/resources/lib/apex.jar` 已经存在,这个是 Salesforce 官方的 Apex API 客户端吗?我们需要基于这个包进行封装吗?
|
||
8. 认证集成:与 Partner API 模块类似,是否也需要使用 `datai-salesforce-auth` 的 SessionManager 管理会话?
|
||
9. 模块设计:是否需要独立的 Controller 层?还是只提供 Service 层?是否需要数据库表?
|
||
10. 异常处理:是否需要自定义异常类?还是使用 `datai-salesforce-common` 模块中的现有异常?
|
||
11. 日志记录:是否需要记录 API 调用日志?还是暂不考虑?
|
||
12. 性能相关:连接、并发、缓存等性能相关是否暂不考虑?
|
||
|
||
**用户**:
|
||
1、在 datai-salesforce-apex 模块中实现 Apex API 的全部功能,对于源 org(Source Org)
|
||
2、全部实现
|
||
3、主要使用场景 `d:\idea_demo\datai\datai-scenes\datai-scene-salesforce\docs\reference-code\sforce\docs\apex-module.md` 文档中所有的场景
|
||
4、也需要使用 datai-salesforce-auth 的 SessionManager 管理会话
|
||
5、需要独立的 Controller 层
|
||
6、需要数据库表(存储编译结果、测试结果等),实际当前模块中需要储存下来的数据,创建个表进行存储
|
||
7、使用 datai-salesforce-common 模块中的现有异常,没有则自定义
|
||
8、日志、性能相关暂不考虑
|
||
|
||
**AI**:好的,感谢您的详细回答。让我总结一下需求:
|
||
|
||
**澄清总结**:
|
||
- **功能范围**:实现 Apex API 的所有功能模块(Apex 代码编译和执行、测试执行、代码覆盖率、Flow 覆盖率、日志记录、WSDL 转换、编译结果、连接管理)
|
||
- **使用场景**:CI/CD 集成(编译 Apex 代码、运行单元测试、检查代码覆盖率、验证测试结果)、代码质量检查(检查代码覆盖率是否达到要求、识别未测试的代码路径、生成测试报告)、动态代码执行(执行匿名 Apex 代码进行调试、运行临时脚本、执行管理任务)、Flow 测试(测试 Flow 的执行、检查 Flow 覆盖率、验证 Flow 逻辑)
|
||
- **认证集成**:使用 `datai-salesforce-auth` 的 `SessionManager` 管理会话,通过 SessionManager 获取 Session ID 和 Server URL
|
||
- **模块设计**:提供 Service 层和 Controller 层(REST API),默认实现 source org 类型(源 org),需要数据库表(存储编译结果、测试结果等数据)
|
||
- **技术实现**:直接使用 `apex.jar` 中的现有类(Connector、SoapConnection、RunTestsRequest、ExecuteAnonymousResult 等),不进行二次封装
|
||
- **异常处理**:优先使用 `datai-salesforce-common` 模块中的现有异常,没有的话就自定义
|
||
- **暂不考虑的功能**:日志记录、连接池、并发控制、缓存策略、限流
|
||
- **数据存储要求**:需要创建表存储编译结果、测试结果等数据,支持历史记录查询和统计分析
|
||
|
||
还有其他需要补充的吗?
|
||
|
||
**用户**:对,创建需求文档吧
|
||
|
||
**AI**:好的,我现在开始创建需求文档。
|
||
|
||
## 生成的文档
|
||
- [需求文档](../requirements/2026-01-28-002-ApexAPI源org实现.md)
|
||
|
||
## 回退记录
|
||
无
|