自定义元数据类型的优点

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. 【shell脚本】将三个数字进行升序排序===numSort.sh

    从命令输入三个数字进行升序排序(冒泡排序) 原理:比较两个相邻的元素,将值大的元素交换至右端. 脚本内容: [root@VM_0_10_centos shellScript]# cat numSort ...

  2. 快速缓存刷新CDN节点的方法

    缓存刷新方式有 URL 刷新.目录刷新和 URL 预热.URL 刷新是以文件为单位进行缓存刷新.目录刷新是以目录为单位,将目录下的所有文件进行缓存刷新.URL 预热是以文件为单位进行资源预热. 刷新后 ...

  3. 明解C语言 入门篇 第十二章答案

    练习12-1 /* 用表示学生的结构体来显示高尾的信息 */ #include <stdio.h> #define NAME_LEN 64 /* 姓名的字符数 */ /*=== 表示学生的 ...

  4. Vue devtool插件安装后无法使用,提示“vue.js not detected”的解决方法

    vue devtool下载 极简插件  github vue devtool安装 点击谷歌浏览器箭头所指图标-更多工具-扩展程序   ①:直接将后缀为crx的安装包拖进下图区域即可自动安装     ② ...

  5. python 自定义Iterator对象

    from collections.abc import Iterator class Company(object): def __init__(self, employee_list): self. ...

  6. 解锁云原生 AI 技能|在 Kubernetes 上构建机器学习系统

    本系列将利用阿里云容器服务,帮助您上手 Kubeflow Pipelines. 介绍 机器学习的工程复杂度,除了来自于常见的软件开发问题外,还和机器学习数据驱动的特点相关.而这就带来了其工作流程链路更 ...

  7. Wine添加路径PATH办法

    使用wine运行某些程序时,可能会提示某些DLL找不到,需要手动把这些DLL的路径添加进去.添加方法是:wine regedit打开注册表工具:添加一个键HKEY_CURRENT_USER/Envir ...

  8. windows下安装pip教程

    下载地址是:https://pypi.python.org/pypi/pip#downloads 下载完成之后,解压到一个文件夹,用CMD控制台进入解压目录,输入: python setup.py i ...

  9. Google开发者F12工具面板-network详解

    1 开发者工具面板    面板上包含了Elements面板.Console面板.Sources面板.Network面板.Performance面板.Memory面板.Application面板.Sec ...

  10. [Tomcat源码分析] Eclipse中搭建Apache Tomcat源码调试环境

    网上很多文章都推荐使用Ant下载编译,但本地实践中屡屡失败,无法下载. 后来参考 https://blog.csdn.net/xiongyouqiang/article/details/7894107 ...