自定义元数据类型的优点

Salesforce中的设定都是以元数据(Metadata)存在的。在Salesforce中,用户可以新建自定义对象、自定义字段等,这些数据结构都以元数据的形式存储在系统中。当用户迁移Salesforce数据时,如果不使用数据迁移工具(比如Data Loader或者导入导出工具),那么Salesforce中只能迁移元数据,而其中的记录就无法被同时迁移。

自定义元数据类型的优势在于用户可以像新建自定义对象和字段一样新建自定义元数据类型,而且可以向其中添加记录,然后可以将数据结构和数据记录一起打包到软件包中,并直接导入到其他系统中。

示例:自定义元数据类型的创建和使用

在这里通过一个例子说明如何新建和使用自定义元数据类型。比如要建立一个实现欧冠联赛规则的自定义元数据类型。

新建自定义元数据类型

在设置界面中搜索“自定义元数据类型”,点击“自定义元数据类型”链接,即可进入“全部自定义元数据类型”的一览表界面。

点击新建按钮,即可像新建自定义对象一样新建一个自定义元数据类型。

注意在“可见性”的设置中,需要选择是否让所有Apex代码和API都可以使用此类型,并且在“设置”中可见。如果需要更高的安全性,可以选择“仅相同的受管软件包中的 Apex 代码可以看到此类型”一项。

点击保存之后,可以看到自定义元数据类型已经成功建立,在详细信息页面,可以看到“API名称”一项,是以“__mdt”结尾,这一点和自定义对象类似,不过自定义对象是以“__c”结尾。

在此界面中,可以新建“自定义字段”、“验证规则”、“页面布局”等,和自定义对象中的类似。“自定义字段”的“API名称”和自定义对象中的自定义字段一样,都以“__c”结尾。

注意自定义元数据类型的标准字段名字和自定义对象中的不完全一样。

在此建立一些自定义字段,结果如图:

添加数据记录

至此,只完成了自定义元数据类型的数据结构的建立,还没有数据记录。现在的“欧冠联赛规则”自定义元数据类型和自定义对象没有区别。

在详细信息页面中,点击“管理 欧冠联赛规则”按钮,即可添加数据记录。

建立数据记录的结果如图:

在Apex中使用自定义元数据类型

在Apex中,可以像使用自定义对象一样使用自定义元数据类型。比如使用刚才建立的“欧冠联赛规则”自定义元数据类型:

List<Champions_League_Rule__mdt> clRuleList = [SELECT MasterLabel, Stage__c, Description__c, Count_Away_Goals__c FROM Champions_League_Rule__mdt];

for(Champions_League_Rule__mdt clRule : clRuleList) {
System.debug('名字:' + clRule.MasterLabel + '\n比赛阶段:' + clRule.Stage__c + '\n描述:' + clRule.Description__c);
}

在控制台中会输出相应的记录内容。

虽然自定义元数据类型和自定义对象在大多数方面类似,但是自定义元数据类型和其包含的记录在单元测试中都是可见的,所以在进行单元测试时,也可以直接调用自定义元数据类型及其记录。

将自定义元数据类型加入软件包

下一步就是将自定义元数据类型及其数据记录加入软件包。

在设置界面下搜索“软件包”,点击“软件包”链接,即可进入软件包的管理界面。

在“软件包”部分点击“新建”按钮,并输入数据即可新建一个软件包。在这里新建一个“欧冠联赛”软件包。

保存后,进入“欧冠联赛”软件包的详细信息页面。在“组件”标签下点击“添加”,即可进入添加组件的页面。

在“组件类型”下拉列表中,可以看到刚才建立的自定义元数据类型“欧冠联赛规则”,选中之后,页面中会自动出现所有记录。在这里可以选择若干或所有记录。点击“添加到软件包”按钮,即可将此自定义元数据类型和选中的记录加入到软件包中。

当成功保存后,回到软件包的详细信息页面,点击“上载”按钮,设定软件包的信息,即可上载软件包,供其他用户使用。

当其他用户安装了此软件包,“欧冠联赛规则”的记录就可以供其使用了。

Salesforce 自定义元数据类型的更多相关文章

  1. .NET/ASP.NETMVC 大型站点架构设计—迁移Model元数据设置项(自定义元数据提供程序)

    阅读目录: 1.需求背景介绍(Model元数据设置项应该与View绑定而非ViewModel) 1.1.确定问题域范围(可以使用DSL管理问题域前提是锁定领域模型) 2.迁移ViewModel设置到外 ...

  2. Java和C#中的自定义元数据

    Java的annotation和C#的Attribute,可用来为语言增加语义,定义元数据. 转自:http://rednaxelafx.iteye.com/blog/464889 http://bl ...

  3. wordpress添加post_type自定义文章类型

    wordpress很强大,能当博客也能进行二次开发出很完善的内容管理系统满足企业运营需求,比如可以添加products产品模型.汽车模型等,如何实现呢?添加post_type自定义文章类型就可以了 p ...

  4. 自定义委托类型 - .Net自带委托类型

    委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递. 与其他的类不同,委托类具有一个签名,并且它只能对与其签名匹配的方法进行引用. 一.自定义委托类型 1.语法结构:访问修 ...

  5. C:Wordpress自定义文章类型(图视频)

    自定义文章类型,包括: 1:单独的"文章内容模板" 2:单独的"文章列表模板" 3:单独的"控制后台"(文章分类.添加文章) 创建自定义文章 ...

  6. sharepoint2010问卷调查(3)-实现问卷的开始和结束时间(采用自定义字段类型)

    接着上面的图片调查,sharepoint自带的问卷调查是没有开始和结束时间的.这个在项目过程不太实用.问卷一般有开始和结束时间的.因此需要自己 动手开发一个自定义字段类型字段.如下图: 开发添加栏目会 ...

  7. sharepoint2010问卷调查(2)-实现问卷的图片调查(采用自定义字段类型)

    1. 首先建立个图片库上传图片 并建立文件夹1和2,1下有1.1文件夹,2下2.1文件夹,2.1下有文件夹2.1.1. 在1文件夹下放如下图片: 2.建立自定义字段类型,如下图: 3.部署后建立栏目的 ...

  8. Gradle学习系列之九——自定义Task类型

    在本系列的上篇文章中,我们学习了多Project构建,在本篇文章中,我们将学到如何自定义Task类型. 请通过以下方式下载本系列文章的Github示例代码: git clone https://git ...

  9. Unity3D ShaderLab 创建自定义高光类型

    Unity3D ShaderLab 创建自定义高光类型 在上一篇,我们认识了Unity基础的高光实现,本次主要是研究如何对Phong高光类型进行顶点操作,以及在表面着色器中使用Input结构体的新参数 ...

随机推荐

  1. 面向对象软件构造 (Bertrand Meyer 著)

    Part A: The Issues 议题 第一章 软件品质 第二章 面向对象的标准 Part B: The Road To Object Orientation 通向面向对象之路 第三章 模块性 第 ...

  2. redis.windows.conf 配置注释

    . daemonize no Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程 . pidfile /var/run/redis_6379.pid 当Redis以守 ...

  3. tomcat参数java_opts调整

    启动文件修改 在windows环境下,tomcat下的~/bin/catalina.bat文件,在文件头部加入: set "JAVA_OPTS=%JAVA_OPTS% -server -Xm ...

  4. D3力布图绘制--节点跑掉,单曲线弯曲问题记录

    D3力布图绘制中遇到的交互问题,频繁操作数据后,会出现节点跑掉和单曲线弯曲的问题 问题描述 在id指向都正常的情况下出现以下2种状况: 单曲线弯曲 节点跑掉 经排查,是数据重复导致的问题 线条也是一样 ...

  5. Redis 设计与实现,看 SDS(Simple Dynamic String) 感悟

    Redis 设计与实现,看 SDS(Simple Dynamic String) 感悟 今天在看 Redis 设计与实现这本书的时候,发现了里面系统定义的数据结构 SDS,中文名为 简单动态字符串.对 ...

  6. linux 修改文件的时间属性

    二.修改文件时间 创建文件我们可以通过touch来创建.同样,我们也可以使用touch来修改文件时间.touch的相关参数如下: -a : 仅修改access time. -c : 仅修改时间,而不建 ...

  7. 关于 Paket

    参考地址:https://fsprojects.github.io/Paket/editor-support.html 1. 安装 Paket for Visual Studio,一个类似于 Nuge ...

  8. 缘起 Dubbo ,讲讲 Spring XML Schema 扩展机制

    背景 在 Dubbo 中,可以使用 XML 配置相关信息,也可以用来引入服务或者导出服务.配置完成,启动工程,Spring 会读取配置文件,生成注入 相关 Bean.那 Dubbo 如何实现自定义 X ...

  9. AES加解密异常java.security.InvalidKeyException: Illegal key size

    AES加解密异常 Java后台AES解密,抛出异常如下:java.security.InvalidKeyException: Illegal key size Illegal key size or ...

  10. 使用Debug Diagnostic Tool排除内存泄漏故障

    在我之前的博文中(SQL Server内存泄漏),我解释了如何使用“!heap”命令识别哪个模块泄漏了内存.有时我们使用“!d”命令来找到模型或者使用搜索内存命令(s)不能通过显示内存找到原因. 在这 ...