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

184 lines
6.6 KiB
Markdown
Raw Normal View History

# 需求文档
## 元数据
- 需求编号004
- 创建时间2026-01-28
- 创建人AI Assistant
- 状态:进行中
- 优先级:高
## 需求概述
`datai-salesforce-tooling` 模块中实现 Salesforce Tooling API 的完整功能,提供对 Salesforce 源 orgSource Org的开发工具和元数据操作能力包括元数据操作、开发工具功能、AI 和智能功能、动作和自动化、访问和安全、高级功能等。
## 目标
1. 实现 Tooling API 的所有核心功能,提供完整的开发工具和元数据操作能力
2. 集成 `datai-salesforce-auth` 模块的会话管理功能
3. 提供 REST API 接口,支持外部系统调用
4. 创建数据库表,存储代码覆盖率、测试结果等数据
5. 默认实现源 orgSource Org类型的数据操作
6. 实现 SOQL 查询功能Tooling API 的核心特性)
## 功能需求
### 核心功能
#### 1. 元数据操作
- **自定义对象和字段**CustomObject、CustomField、CustomIndex
- **Apex 组件**ApexClass、ApexTrigger、ApexPage、ApexComponent
- **Flow 和自动化**Flow、FlowDefinition、FlowVersion、FlowTestCoverage
#### 2. 开发工具功能
##### 诊断和调试
- **ApexCodeCoverage**: Apex 代码覆盖率
- **ApexCodeCoverageAggregate**: Apex 代码覆盖率聚合
- **ApexTestQueueItem**: Apex 测试队列项
- **ApexLog**: Apex 日志
##### 查询和搜索
- **ApexClassMember**: Apex 类成员
- **ApexTriggerMember**: Apex 触发器成员
- **ApexPageMember**: Apex 页面成员
- **ApexComponentMember**: Apex 组件成员
#### 3. AI 和智能功能
##### AI 应用
- **AIApplication**: AI 应用
- **AIApplicationStatus**: AI 应用状态
- **AIApplicationType**: AI 应用类型
##### AI 评估
- **AiEvaluationSubjectType**: AI 评估主题类型
- **AiEvaluationProcessingStatus**: AI 评估处理状态
- **AiEvaluationMetricType**: AI 评估指标类型
##### AI 创作
- **AiAuthoringBundleType**: AI 创作包类型
- **AiAuthoringBundleVersionStatus**: AI 创作包版本状态
- **AiAssistantTemplateStatus**: AI 助手模板状态
#### 4. 动作和自动化
##### 动作定义
- **ActionOverride**: 动作覆盖
- **ActionOverrideType**: 动作覆盖类型
- **ActionSubtype**: 动作子类型
##### 可操作列表
- **ActionableListType**: 可操作列表类型
- **ActionableListSourceType**: 可操作列表源类型
- **ActionableListKPIStType**: 可操作列表 KPI 状态类型
##### 动作任务
- **ActionTaskAssignedToTypes**: 动作任务分配类型
- **ActionHttpMethod**: 动作 HTTP 方法
- **ActionEmailSenderType**: 动作邮件发送者类型
#### 5. 访问和安全
##### 访问控制
- **AccessMethod**: 访问方法
- **AccessResourceType**: 访问资源类型
- **APIAccessLevel**: API 访问级别
- **APIType**: API 类型
##### 连接器
- **ActivationPlatformConnectorType**: 激活平台连接器类型
- **ActivationPlatformCreationType**: 激活平台创建类型
#### 6. 高级功能
##### 聚合和计算
- **AccumulateResultOperator**: 累积结果操作符
- **AccumulateResultCondInputType**: 累积结果条件输入类型
- **AggregateExpressionResultColumnMetadata**: 聚合表达式结果列元数据
- **AggregateQueryResultColumnMetadata**: 聚合查询结果列元数据
##### 预测和预测
- **AdvAcctFrcstDisplayGroupType**: 高级账户预测显示组类型
- **AdvAcctFcstMeasureType**: 高级账户预测度量类型
- **AdvAcctFcstFormulaType**: 高级账户预测公式类型
- **AdvAcctFcstComputationMethod**: 高级账户预测计算方法
##### 激活和应用
- **ActivationFlowType**: 激活 Flow 类型
- **ActivationFeatureType**: 激活功能类型
- **ActivationAppType**: 激活应用类型
- **ACPStatus**: ACP 状态
#### 7. SOQL 查询功能(核心特性)
- **query**: 执行 SOQL 查询
- **queryMore**: 获取更多查询结果
- 支持所有 Tooling API 对象的查询
- 支持复杂的查询条件、排序、分页
### 次要功能
- 错误处理和异常管理
- 结果封装和返回
- 异步操作轮询机制
- 测试执行和结果查询
- 代码覆盖率分析
## 非功能需求
### 性能要求
- 暂不考虑连接池、并发控制、缓存等性能优化
- 每次调用都创建新连接
- 异步操作需要轮询检查状态
- SOQL 查询需要支持分页queryMore
### 安全要求
- 集成 `datai-salesforce-auth` 模块的会话管理
- 使用 SessionManager 获取 Session ID 和 Server URL
- 优先使用 `datai-salesforce-common` 模块中的现有异常
### 兼容性要求
- 支持 Salesforce Tooling API v65.0
- 兼容 Java 22
- 兼容 Spring Boot 框架
### 数据存储要求
- 创建数据库表存储代码覆盖率、测试结果等数据
- 支持历史记录查询
- 支持结果统计和分析
## 技术约束
### 必须使用的框架或库
- **tooling.jar**: Salesforce Tooling API 客户端ToolingConnection、ApexClass、ApexTrigger、ApexCodeCoverage 等)
- **datai-salesforce-auth**: 使用 SessionManager 管理会话
- **datai-salesforce-common**: 使用现有异常类
### 必须遵循的设计模式
- Service 层模式:提供业务逻辑封装
- Controller 层模式:提供 REST API 接口
- 直接使用 tooling.jar 中的现有类,不进行不必要的二次封装
### 必须实现的功能
- SOQL 查询功能Tooling API 的核心特性)
- 支持所有 Tooling API 对象的 CRUD 操作
- 支持测试执行和结果查询
- 支持代码覆盖率分析
### 自定义类原则
- 优先使用 tooling.jar 中的现有类
- 如果确实有需求需要使用自定义类,则新增
- 新增前需要严格判断必要性
### 数据库设计原则
- 需要创建表存储代码覆盖率、测试结果等数据
- 表结构在设计阶段确定
- 支持历史记录查询和统计分析
## 成功标准
1. **功能完整性**: 所有 Tooling API 核心功能都已实现并通过测试
2. **认证集成**: 成功集成 SessionManager能够获取 Session ID 和 Server URL
3. **API 接口**: 提供 REST API 接口,支持外部系统调用
4. **数据存储**: 成功创建数据库表,能够存储和查询代码覆盖率、测试结果等数据
5. **SOQL 查询**: 成功实现 SOQL 查询功能,支持所有 Tooling API 对象的查询
6. **异常处理**: 正确处理各种异常情况,使用合适的异常类
7. **代码质量**: 代码符合项目规范,无编译错误和警告
## 相关文档
- [子需求索引](./sub/index.md) - 子需求文档索引
- [设计文档](../design/2026-01-28-004-ToolingAPI源org实现设计.md) - 待创建
- [决策记录](../decisions/adr/2026-01-28-004-ADR-ToolingAPI源org实现技术选型.md) - 待创建
- [参考文档](../reference-code/sforce/docs/tooling-module.md) - Tooling API 功能说明