问题描述
我试图在Salesforce代码库中表示环境变量,并遇到了自定义元数据类型。因此,根据我所处的沙箱,我想更改从顶点类访问的外部服务的baseURL。我想避免对类中的任何内容进行硬编码,因此试图找出诸如解决方案之类的环境变量。
您如何将URL表示为自定义元数据类型?另外,如何在课堂上访问它?从产品刷新qa沙箱后会发生什么?他们是否自定义元数据类型记录被覆盖?
解决方法
您如何致电该外部服务?如果它确实是基本URL,则最好使用“ named credential”。它将为您提取基本的url,如果您需要提供任何内容,则包括身份验证或证书...
失败-自定义元数据可能不是一个好的选择。它们是字典对象,您可以添加更多(但不能从apex添加),但是如果使用Git / Ant / SFDX CLI部署内容而不是变更集,这会变得有些痛苦,那么您需要为沙箱使用不同的自定义元数据值与产品金达不能达到目的。
您最好改用自定义设置(默认情况下启用了层次结构,列表必须在安装程序中翻转一个复选框。如果您需要键值对类型的列表(类似于自定义元数据),则列表很有用): https://salesforce.stackexchange.com/questions/74049/what-is-the-difference-between-custom-settings-and-custom-metadata-types
您也可以使用Apex修改它们。这意味着在理想情况下,刷新沙箱后,您可能会立即运行“ postcopy”类,该类将使用非生产值覆盖自定义设置。对于命名凭证,我认为您无法实现,需要微型部署对其进行更改或手动执行(您看过https://salesforce.stackexchange.com/q/955/799吗?)