3.3 KiB
3.3 KiB
Apex 类与触发器基础管理需求 (Tooling API)
元数据
- 需求编号:014-1
- 创建时间:2026-01-26
- 创建人:SSOT 架构师
- 状态:进行中
- 优先级:高
- 父需求:REQ-014
- 关联代码:
com.sforce.soap.tooling.ApexClass,com.sforce.soap.tooling.ApexTrigger
需求概述
作为 Tooling API 模块的基础,本需求负责建立与 Salesforce Tooling API 的连接,并封装针对 ApexClass 和 ApexTrigger 的基础 CRUD 操作。
注意:经扫描,docs/reference-code/sforce/soap/tooling 目录下缺失 ToolingConnection 等入口类,需优先补充生成 WSDL 客户端代码。
目标
- 客户端生成:补全 Tooling API 的 WSDL 生成代码(重点是
ToolingConnection)。 - 连接工厂:实现
ToolingConnectionFactory,复用datai-salesforce-integration的连接管理模式。 - 基础 CRUD:实现对 Apex 类和触发器的创建、读取、更新和删除。
功能需求
核心功能
-
Tooling 连接工厂 (ToolingConnectionFactory)
- 继承:
AbstractConnectionFactory<ToolingConnection> - 输入:Org Type (source/target)
- 实现逻辑:
- 从
SessionManager获取 Session ID 和 Instance URL。 - 构建 Endpoint:
instanceUrl + "/services/Soap/T/" + apiVersion。 - 初始化
ConnectorConfig并创建ToolingConnection。
- 从
- 继承:
-
Apex 类管理 (ApexClass Manager)
createApexClass(String name, String body): 使用create()调用。getApexClass(String name): 使用query()调用SELECT Id, Body FROM ApexClass WHERE Name = ?。updateApexClass(String id, String body): 使用update()调用。deleteApexClass(String id): 使用delete()调用。
-
Apex 触发器管理 (ApexTrigger Manager)
- 类似于 Apex 类管理,针对
ApexTrigger对象。
- 类似于 Apex 类管理,针对
次要功能
- 通用查询:封装
ToolingConnection.query(String soql)。
非功能需求
- 架构一致性:必须复用
datai-salesforce-integration模块的AbstractConnectionFactory和ConnectionProxy。 - 配置复用:直接使用
datai-salesforce-auth的 Session 管理,不重复实现登录逻辑。
技术约束
- 类名修正:原计划的
SforceService不存在,应使用com.sforce.soap.tooling.ToolingConnection。 - Endpoint:注意 Tooling API 的 Endpoint 路径包含
/T/。 - WSDL 生成:如果
ToolingConnection类缺失,需使用 WSC 工具重新生成或引入完整 Jar 包。
成功标准
ToolingConnectionFactory能成功创建连接并注入 Session。- 单元测试能调用
ToolingConnection.getServerTimestamp()验证连接有效性。 - 能够完成 Apex 类的 CRUD 闭环测试。