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

6.6 KiB
Raw Blame 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. 代码质量: 代码符合项目规范,无编译错误和警告

相关文档