You need to enable JavaScript to run this app. 使用Apex更新Salesforce自定义元数据出现名称格式错误如何解决?
优惠活动
大模型
产品
解决方案
定价
更多

使用Apex更新Salesforce自定义元数据出现名称格式错误如何解决?

问题修复方案

错误根因

Salesforce要求通过Apex Metadata API操作自定义元数据记录时,CustomMetadata.fullName必须遵循[自定义元数据类型API名].[记录DeveloperName]的格式,你当前代码仅传入了记录的DeveloperName,缺少自定义元数据类型前缀,因此触发格式校验错误。

修复代码

只需要修改customMetadata.fullName的赋值逻辑即可,调整后的完整代码如下:

Metadata.DeployContainer mdContainer = new Metadata.DeployContainer();

for(Omni_Routing_Skillset__mdt md: omnimetadata) {
    Metadata.CustomMetadata customMetadata = new Metadata.CustomMetadata();
    // 修复:补充自定义元数据类型API名作为前缀
    customMetadata.fullName = 'Omni_Routing_Skillset__mdt.' + md.DeveloperName; 
    customMetadata.Label = md.MasterLabel;
    Metadata.CustomMetadataValue customField1 = new Metadata.CustomMetadataValue();
    customField1.field = 'Omni_Routing_Skillset__mdt.Skill_Level__c';
    customField1.value = skillsAndValues.get(md.MasterLabel);
    customMetadata.values.add(customField1);
    mdContainer.addMetadata(customMetadata);
    System.debug('customMetadata: ' + customMetadata);
}
Id jobId = Metadata.Operations.enqueueDeployment(mdContainer, null);

额外注意事项

  • 如果你的自定义元数据类型属于托管包,需要在类型API名前补充命名空间前缀,格式为[命名空间]__[元数据类型API名].[记录DeveloperName]
  • 部署任务提交后可以进入设置 → 部署 → 部署状态页面,查看任务的实时执行进度和详细日志

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 22:15:08