datai/datai-scenes/datai-scene-salesforce/docs/reference-code/com/docs/metadata-module.md
Kris 2e6f087732 docs: 完成REQ-010-17和REQ-010-2的文档创建
- 完成REQ-010-17(性能优化和限流处理)的所有6个阶段
  - 创建ADR文档:0026-performance-optimization.md
  - 创建Prompt文档:027-performance-optimization.md
  - 创建会话记录:20260119-performance-optimization.md
  - 创建变更记录:20260119-performance-optimization.md
  - 创建复盘报告:20260119-performance-optimization-retro.md
  - 更新index.md和CHANGELOG.md

- 完成REQ-010-2(基础实体类和Mapper创建)的前3个阶段
  - 更新ADR文档:0011-entity-mapper-create.md
  - 创建Prompt文档:002-entity-mapper-create.md
  - 更新index.md

所有文档均按照SSOT方法论创建,包括需求定义、架构决策、提示词资产化、执行会话、变更记录和闭环复盘。
2026-01-19 10:06:09 +08:00

7.9 KiB
Raw Blame History

com.sforce.soap.metadata 模块说明

概述

com.sforce.soap.metadata 模块是 Salesforce Metadata API 的 Java 客户端实现,包含了 Salesforce 元数据类型的完整定义,用于创建、读取、更新和删除 Salesforce 组织中的元数据。

主要功能

1. 元数据类型定义

模块包含了数百种元数据类型,涵盖了 Salesforce 的各个方面:

核心组件类型

  • ApexClass: Apex 类定义
  • ApexTrigger: Apex 触发器定义
  • ApexPage: Visualforce 页面定义
  • ApexComponent: Visualforce 组件定义
  • CustomObject: 自定义对象定义
  • CustomField: 自定义字段定义
  • CustomTab: 自定义标签页定义

配置类型

  • AppSettings: 应用程序设置
  • ApprovalProcess: 审批流程定义
  • AssignmentRules: 分配规则定义
  • Workflow: 工作流规则定义
  • ValidationRule: 验证规则定义
  • SharingRule: 共享规则定义

分析类型

  • AnalyticsDashboard: 分析仪表板
  • AnalyticsDataset: 分析数据集
  • AnalyticsWorkspace: 分析工作空间
  • Report: 报告定义
  • Dashboard: 仪表板定义

AI 和自动化类型

  • AIApplication: AI 应用程序
  • Bot: 机器人定义
  • Flow: Flow 定义
  • ProcessBuilder: 流程构建器定义

UI 和用户体验类型

  • CustomTab: 自定义标签页
  • CompactLayout: 紧凑布局
  • PageLayout: 页面布局
  • ListView: 列表视图
  • QuickAction: 快速操作

2. 部署操作

  • DeployOptions: 部署选项配置
  • DeployResult: 部署结果
  • DeployMessage: 部署消息
  • DeployDetails: 部署详细信息
  • DeployStatus: 部署状态

3. 异步操作

  • AsyncResult: 异步操作结果
  • AsyncRequestState: 异步请求状态

4. 删除操作

  • DeleteResult: 删除操作结果

核心类

CustomObject

作用: 定义 Salesforce 自定义对象的元数据。

主要属性:

  • fullName: 对象的完整名称
  • label: 对象的显示标签
  • pluralLabel: 对象的复数标签
  • description: 对象的描述
  • fields: 对象的字段列表
  • sharingModel: 共享模型

使用示例:

CustomObject customObject = new CustomObject();
customObject.setFullName("MyCustomObject__c");
customObject.setLabel("My Custom Object");
customObject.setPluralLabel("My Custom Objects");
customObject.setDeploymentStatus("Deployed");
customObject.setSharingModel("ReadWrite");

// 添加字段
CustomField nameField = new CustomField();
nameField.setFullName("MyCustomObject__c.Name__c");
nameField.setType("Text");
nameField.setLabel("Name");

customObject.setFields(new CustomField[]{nameField});

CustomField

作用: 定义自定义对象的字段。

主要属性:

  • fullName: 字段的完整名称
  • type: 字段类型Text、Number、Date 等)
  • label: 字段的显示标签
  • required: 是否必填
  • defaultValue: 默认值

使用示例:

CustomField field = new CustomField();
field.setFullName("MyCustomObject__c.Email__c");
field.setType("Email");
field.setLabel("Email Address");
field.setRequired(true);

ApexClass

作用: 定义 Apex 类的元数据。

主要属性:

  • fullName: 类的完整名称
  • content: 类的源代码
  • apiVersion: API 版本
  • status: 类的状态

使用示例:

ApexClass apexClass = new ApexClass();
apexClass.setFullName("MyClass");
apexClass.setContent("public class MyClass { }");
apexClass.setApiVersion("58.0");

DeployOptions

作用: 配置元数据部署的选项。

主要属性:

  • allowMissingFiles: 是否允许缺少文件
  • autoUpdatePackage: 是否自动更新包
  • checkOnly: 是否只检查不部署
  • ignoreWarnings: 是否忽略警告
  • performRetrieve: 是否执行检索
  • purgeOnDelete: 删除时是否清除
  • rollbackOnError: 出错时是否回滚
  • testLevel: 测试级别

使用示例:

DeployOptions options = new DeployOptions();
options.setCheckOnly(true);
options.setTestLevel("RunSpecifiedTests");
options.setRunTests(new String[]{"MyTestClass"});

DeployResult

作用: 表示元数据部署的结果。

主要属性:

  • id: 部署 ID
  • status: 部署状态
  • success: 是否成功
  • createdDate: 创建日期
  • startDate: 开始日期
  • completedDate: 完成日期
  • numberComponentErrors: 组件错误数
  • numberComponentsDeployed: 部署的组件数
  • numberComponentsTotal: 总组件数
  • numberTestErrors: 测试错误数
  • numberTestsCompleted: 完成的测试数
  • numberTestsTotal: 总测试数
  • details: 部署详细信息
  • messages: 部署消息

使用示例:

DeployResult result = connection.deploy(zipFile, options);
if (result.isSuccess()) {
    System.out.println("部署成功");
} else {
    for (DeployMessage message : result.getMessages()) {
        System.out.println("错误: " + message.getProblem());
    }
}

使用场景

1. 元数据部署

  • 部署 Apex 类、触发器、页面
  • 创建自定义对象和字段
  • 更新现有元数据
  • 验证部署前的更改

2. 元数据检索

  • 检索组织中的元数据
  • 导出元数据到本地
  • 备份元数据配置
  • 分析元数据结构

3. CI/CD 集成

  • 自动化部署流程
  • 持续集成测试
  • 环境间元数据同步
  • 版本控制集成

4. 元数据管理

  • 批量更新元数据
  • 删除不需要的组件
  • 重命名和重构
  • 元数据依赖管理

5. 分析和报告

  • 创建和更新报告
  • 管理仪表板
  • 配置数据集
  • 设置分析工作空间

注意事项

  1. API 限制: 有 API 调用次数和部署大小的限制
  2. 依赖关系: 需要正确处理组件间的依赖关系
  3. 部署顺序: 某些组件需要按特定顺序部署
  4. 测试要求: 部署时可能需要运行测试
  5. 版本兼容性: 不同版本的 Salesforce 可能有不同的元数据结构
  6. 权限要求: 需要适当的 API 权限才能使用这些功能
  7. 异步操作: 部署操作是异步的,需要轮询状态
  8. 错误处理: 需要正确处理部署错误和警告

相关文档

文件分类

Apex 相关

  • ApexClass.java - Apex 类
  • ApexTrigger.java - Apex 触发器
  • ApexPage.java - Visualforce 页面
  • ApexComponent.java - Visualforce 组件
  • ApexTestSuite.java - Apex 测试套件

自定义对象相关

  • CustomObject.java - 自定义对象
  • CustomField.java - 自定义字段
  • CustomIndex.java - 自定义索引
  • CustomLabel.java - 自定义标签
  • CustomTab.java - 自定义标签页

部署相关

  • DeployOptions.java - 部署选项
  • DeployResult.java - 部署结果
  • DeployMessage.java - 部署消息
  • DeployDetails.java - 部署详细信息
  • DeployStatus.java - 部署状态

删除相关

  • DeleteResult.java - 删除结果

异步操作相关

  • AsyncResult.java - 异步结果
  • AsyncRequestState.java - 异步请求状态

AI 和自动化相关

  • AIApplication.java - AI 应用
  • Bot.java - 机器人
  • Flow.java - Flow
  • BotDialog.java - 机器人对话框
  • BotMessage.java - 机器人消息

分析相关

  • AnalyticsDashboard.java - 分析仪表板
  • AnalyticsDataset.java - 分析数据集
  • AnalyticsWorkspace.java - 分析工作空间
  • Dashboard.java - 仪表板
  • Report.java - 报告

UI 相关

  • PageLayout.java - 页面布局
  • CompactLayout.java - 紧凑布局
  • ListView.java - 列表视图
  • QuickAction.java - 快速操作
  • CustomTab.java - 自定义标签页

配置相关

  • AppSettings.java - 应用设置
  • ApprovalProcess.java - 审批流程
  • AssignmentRules.java - 分配规则
  • Workflow.java - 工作流
  • ValidationRule.java - 验证规则