课程章节介绍
同学们,咱们今天来看一看Apex里一个非常实用的功能,就是,Metadata.Operations类,。这个类主要帮我们用代码来操作元数据,不需要手动去设置界面点来点去。特别是当你在写安装后的自动化脚本,或者做配置工具时,它特别管用。
先说,检索元数据,。我们可以用 `Metadata.Operations.retrieve()` 方法,你只要传进去一个,组件名称的列表,,它就会同步地去查询并返回匹配的组件数据。注意,这里是同步的,调用了马上就拿到结果。返回的数据是一些Metadata实例,比如你查自定义元数据类型记录,就会返回对应记录的结构。这个组件名称它不是简简单单一个名字,而是,完整的名称,,这个完整名称包含三部分:命名空间、类型和组件名。举个例,如果你有一个自定义元数据记录,在命名空间 `MyApp` 下,类型是 `Config__mdt`,记录名字是 `DefaultSettings`,那么完整的名称就是 `MyApp.Config__mdt.DefaultSettings`,一种把命名空间、类型和名字用点连接起来的写法。
再说说,部署元数据,。我们可以用 `Metadata.Operations.enqueueDeployment()` 方法,它是一个异步的操作,用来部署(也就是创建或者更新)元数据。注意是异步,调用后不会立即完成,你后面可能要通过回调或查询部署状态来确认。这个方法,只能创建和更新,,不能拿来删除元数据。而且它接受的参数也包括完整的组件名称和组件内容,同样要遵循那个命名规则。
那么这些功能通常用在哪些场景呢?第一个就是,自定义应用的安装或升级,,你可以在安装后脚本里自动创建一些必要的自定义元数据记录或布局。第二个是,通过UI做安装后配置,,用户点了某个按钮后,后台用Apex去检索并修改配置。第三个,有些受保护的元数据普通用户没法通过UI安全访问,但是通过Apex的 `Metadata.Operations.retrieve()`,在系统模式下可以安全读取。还有一点,如果你想写一个,自定义的管理工具,,用代码去批量管理布局或者自定义元数据,也离不开这两个方法。
不过有一点要特别记住:在,安装后脚本里,,你可以既检索又部署。但是,卸载脚本里,,你只能检索元数据,不能去部署任何东西。因为卸载时系统要清理安装的内容,不允许你再新增或更新。
目前,Metadata.Operations支持的类型主要是,自定义元数据类型记录,和,布局,。也就是说,你暂时不能拿它去操作自定义对象、字段这种大块的元数据,但管理自定义元数据和布局已经能满足很多自动化需求了。
总结一下,这一页Slide的关键点就是:用 `retrieve` 同步检索,用 `enqueueDeployment` 异步部署(只能增改),记住完整的组件名称由命名空间、类型和组件名组成,了解典型用例,区分安装与卸载脚本的权限,并知道当前支持的类型。这样你以后在写自动化配置相关的代码时,心里就有谱了。
关键词
Apex
Salesforce
Developer Guide