# 需求文档 ## 元数据 - 需求编号:004 - 创建时间:2026-01-28 - 创建人:AI Assistant - 状态:进行中 - 优先级:高 ## 需求概述 在 `datai-salesforce-tooling` 模块中实现 Salesforce Tooling API 的完整功能,提供对 Salesforce 源 org(Source Org)的开发工具和元数据操作能力,包括元数据操作、开发工具功能、AI 和智能功能、动作和自动化、访问和安全、高级功能等。 ## 目标 1. 实现 Tooling API 的所有核心功能,提供完整的开发工具和元数据操作能力 2. 集成 `datai-salesforce-auth` 模块的会话管理功能 3. 提供 REST API 接口,支持外部系统调用 4. 创建数据库表,存储代码覆盖率、测试结果等数据 5. 默认实现源 org(Source 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 功能说明