You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Salesforce自定义对象字段增改时触发Apex类?

实现自定义对象字段变更时自动触发Apex类的方案

步骤1:启用Metadata Change Events

  • 在Setup中搜索Platform Events,找到MetadataChangeEvent标准平台事件
  • 确认其Publish Behavior设置为Publish immediately
  • 若仅需监听特定自定义对象的字段变更,配置Change Data Capture订阅,筛选CustomField类型的元数据变更,并指定目标对象的API名称

步骤2:编写Apex Trigger监听MetadataChangeEvent

创建Trigger捕获元数据变更事件,判断是否为目标对象的字段新增/修改操作,再调用你已有的Schema发送类:

trigger MetadataChangeTrigger on MetadataChangeEvent (after insert) {
    // 替换为你的目标自定义对象API名称(例如:MyCustomObject__c)
    String targetObjectApiName = 'MyCustomObject__c';

    for (MetadataChangeEvent event : Trigger.new) {
        // 仅处理自定义字段的新增/修改事件
        if (event.EntityType == 'CustomField' && event.ChangeType != 'DELETE') {
            String fieldFullName = event.EntityDefinition.QualifiedApiName;
            String objectApiName = fieldFullName.substringBefore('.');

            if (objectApiName == targetObjectApiName) {
                // 调用你已有的发送Schema的Apex类
                YourSchemaSenderClass.sendSchemaToEndpoint();
                break; // 避免同一批次重复调用,可按需调整
            }
        }
    }
}

步骤3:验证触发逻辑

  • 手动给目标自定义对象新增字段,或修改现有字段属性(如标签、数据类型)
  • 检查第三方端点是否收到Schema消息,同时查看Salesforce的Apex Jobs和Debug Logs,确认Trigger与你的类正常执行

注意事项

  • 权限配置:确保运行Trigger的自动化用户拥有访问Metadata API、目标自定义对象及调用你Apex类的权限
  • 批量处理:若同一批次存在多个字段变更,需添加去重逻辑避免重复发送Schema
  • 错误处理:建议在你的YourSchemaSenderClass中加入异常捕获与重试机制,比如用Queueable Apex异步处理发送,避免阻塞元数据变更操作

内容的提问来源于stack exchange,提问作者user21189041

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 09:50:35