6.6 KiB
6.6 KiB
需求文档
元数据
- 需求编号:004
- 创建时间:2026-01-28
- 创建人:AI Assistant
- 状态:进行中
- 优先级:高
需求概述
在 datai-salesforce-tooling 模块中实现 Salesforce Tooling API 的完整功能,提供对 Salesforce 源 org(Source Org)的开发工具和元数据操作能力,包括元数据操作、开发工具功能、AI 和智能功能、动作和自动化、访问和安全、高级功能等。
目标
- 实现 Tooling API 的所有核心功能,提供完整的开发工具和元数据操作能力
- 集成
datai-salesforce-auth模块的会话管理功能 - 提供 REST API 接口,支持外部系统调用
- 创建数据库表,存储代码覆盖率、测试结果等数据
- 默认实现源 org(Source Org)类型的数据操作
- 实现 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 中的现有类
- 如果确实有需求需要使用自定义类,则新增
- 新增前需要严格判断必要性
数据库设计原则
- 需要创建表存储代码覆盖率、测试结果等数据
- 表结构在设计阶段确定
- 支持历史记录查询和统计分析
成功标准
- 功能完整性: 所有 Tooling API 核心功能都已实现并通过测试
- 认证集成: 成功集成 SessionManager,能够获取 Session ID 和 Server URL
- API 接口: 提供 REST API 接口,支持外部系统调用
- 数据存储: 成功创建数据库表,能够存储和查询代码覆盖率、测试结果等数据
- SOQL 查询: 成功实现 SOQL 查询功能,支持所有 Tooling API 对象的查询
- 异常处理: 正确处理各种异常情况,使用合适的异常类
- 代码质量: 代码符合项目规范,无编译错误和警告