SuperAPI AI 工具集

platform-custom-metadata-type-generate

数据与分析

查看项目

更新于 10-15 21:43

技能介绍

用途:按 Salesforce 元数据格式生成自定义元数据类型(CMDT,后缀 __mdt)的定义、字段与记录文件,并校验其可部署性与排查部署错误。相比自定义设置,CMDT 记录属于元数据,可跨 org 部署,适合需要“随包发布、各 org 一致”的参考数据。

主要能力:生成类型定义 objects/<Name>__mdt/<Name>__mdt.object-meta.xml(根元素 CustomObject;必需 label、pluralLabel、visibility、description;禁止 sharingModel、nameField、deploymentStatus、enableSearch 等);生成字段 objects/<Name>__mdt/fields/<Field>__c.field-meta.xml;生成记录 customMetadata/<TypeName>.<RecordName>.md-meta.xml。支持字段类型含 Checkbox、Date、DateTime、Email、Number、Percent、Phone、Picklist、Text、TextArea、LongTextArea、Url 及 MetadataRelationship;不支持 Currency、AutoNumber、MasterDetail、Summary、Location、Time、EncryptedText、Html、MultiselectPicklist 与公式字段。

使用要点:字段写 Lookup 会被平台静默改写为 MetadataRelationship,应显式写 MetadataRelationship;指向 FieldDefinition 时须配 metadataRelationshipControllingField。记录文件的根元素须含 metadata 命名空间及 xsd、xsi 命名空间;每个值都要带正确的 xsi:type(如 xsd:boolean、xsd:date、xsd:dateTime、xsd:double、xsd:string),Picklist 值必须用 xsd:string,不可用文档所称的 xsd:picklist,否则整个部署会在服务端失败;label 必填;空值写 <value xsi:nil="true"/>。记录名需以字母开头,仅含字母数字与下划线,不以下划线结尾或连续下划线,最长 40 字符。可由列表、CSV 或文字描述推导记录,DeveloperName 应按批生成并检查重复。Apex 中可通过生成的类型类读取,如 Partner_Tier__mdt.getAll();getAll()/getInstance() 仅返回 LongTextArea 前 255 字符,更长值需用 SOQL 读取。

适用场景:需要跨 org 部署的参考数据、管理员维护的字段映射或对照表、可部署的配置记录等。限制:Protected 与 PackageProtected 可见性仅适用于开发者、沙箱或 scratch org,失败时不得静默降级为 Public;CMDT 不适合存放密钥、令牌或证书,Protected 并非加密,应改用命名凭据等组件。部分细节(如通过 MetadataRelationship 指向另一 __mdt 类型时的 xsi:type)尚未验证。