Salesforce 小知识 - 必需字段
将字段定义为“必需”
当我们为对象设置字段的属性时,我们需要让某些字段在建立记录的时候必需有值,比如定义一个“地址”对象,那么必须填入“邮编”和“城市”。这时,我们就需要将“邮编”和“城市”字段设置为“必需”。
字段定义级别
最简单的方法是在建立自定义字段时,将某字段定义为“必需”。这时,无论我们从用户界面还是代码来保存相关的数据,这个字段的值都是必需的。
这是 Salesforce 提供的关于“必需”字段最严格的检查规则。

用户界面级别
上述的方法过于严格,不适合需要灵活性的情况。那么我们可以用其他方法来设定字段的“必需”属性。
最常见的方法就是在对象的用户界面(Page Layout)将某字段设置为“必需”。在这种情况下,只有通过用户界面新建或保存数据的用户需要为此字段提供值,而通过代码保存的数据则没有这种检查。

验证规则级别
我们也可以通过验证规则(Validation Rule)来将字段定义为“必需”。这样做有两种好处:
- 避免了字段定义级别的“必需”设置
- 验证规则对用户界面和代码同时起作用
这种方法可以看作是上述两种方法的中和。
“必需”字段的权限部署
在通过 Metadata API 对“必需”字段的权限进行部署时,有一条特殊的规则。
如果一个字段是在字段定义级别被设置为“必需”的话,对于 API 30.0 以后的版本,那么我们不需要在简档(Profile)或权限集(Permission Set)中对其进行权限设置。
比如:
<fieldPermissions><editable>true</editable><field>Address__c.Postalcode__c</field><readable>true</readable></fieldPermissions>
如果我们用了上述的第一种方法将字段 Postalcode__c 设置为“必需”,然后又在某个简档或权限集中加入了上述的代码,那么在进行部署的时候就会出错。
那么我们怎么确定该字段的权限呢?
在这种情况下,Salesforce 会自动将此字段对于所有权限可见(可读、可修改)。
Salesforce 小知识 - 必需字段的更多相关文章
- Salesforce小知识:累计汇总字段类型
累计汇总字段类型的定义 Salesforce中可以在两个对象之间建立关系.一个对象的某一条记录可以有若干条相关联的其他对象记录. 累计汇总字段可以将这些相关联的记录中的某些字段值汇总起来,显示给用户. ...
- Salesforce小知识:在简档中设置Visualforce页面的权限
简档(Profile)中的 Visualforce 页面访问权限 在Salesforce中,对于自定义的简档,可以设置"Visualforce 页面访问"的权限. Visualfo ...
- Salesforce 小知识:大量“子记录”的处理方法
大量"子记录"的存放 例子:系统中导入了很多"联系人"(Contact)记录,它们没有具体所属的"客户"(Account)记录.那么我们就要 ...
- salesforce 零基础开发入门学习(十)IDE便捷小知识
在这里介绍两个IDE的便捷开发的小知识. 一) 本地调试 由于salesforce代码只能提交以后才能调试,所以很多时候调试代码很麻烦.新版增加了一个特性:即可以在本地调试相关的代码或者查看相关代码运 ...
- Jquery:小知识;
Jquery:小知识: jQuery学习笔记(二):this相关问题及选择器 上一节的遗留问题,关于this的相关问题,先来解决一下. this的相关问题 this指代的是什么 这个应该是比较好理 ...
- $Django 路飞之小知识回顾,Vue之样式element-ui,Vue绑定图片--mounted页面挂载--路由携带参数
一 小知识回顾 1 级联删除问题 2 一张表关联多个表,比如有manytomanyfileds forignkey,基于对象查询存在的问题:反向查询的时候 表名小写_set.all()不知是哪个字段 ...
- 【C#小知识】C#中一些易混淆概念总结(五)---------继承 分类: C# 2014-02-06 22:05 1106人阅读 评论(0) 收藏
目录: [C#小知识]C#中一些易混淆概念总结--------数据类型存储位置,方法调用,out和ref参数的使用 [C#小知识]C#中一些易混淆概念总结(二)--------构造函数,this关键字 ...
- 【C#小知识】C#中一些易混淆概念总结(五)---------深入解析C#继承
目录: [C#小知识]C#中一些易混淆概念总结--------数据类型存储位置,方法调用,out和ref参数的使用 [C#小知识]C#中一些易混淆概念总结(二)--------构造函数,this关键字 ...
- 【C#小知识】C#中一些易混淆概念总结(三)---------结构,GC,静态成员,静态类
目录: [C#小知识]C#中一些易混淆概念总结 [C#小知识]C#中一些易混淆概念总结(二) ---------------------------------------分割线----------- ...
随机推荐
- 开源播放器 ijkplayer (二) :ijkplayer倍速变调问题解决方案
转载注明出处:http://www.cnblogs.com/renhui/p/6510872.html 之前使用IjkPlayer做播放器的使用的时候,在做倍速播放的时候,发现播放的声音音调明显变高了 ...
- Sql语句出错:Unknown column 'CLAMP' in 'where clause'
严重: Servlet.service() for servlet [jsp] in context with path [/management] threw exception [javax.se ...
- 从零开始学 Web 之 ES6(五)ES6基础语法三
大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...
- Eureka多机高可用
线上Eureka高可用集群,至少三个节点组成一个集群,推荐部署在不同的服务器上,IP用域名绑定,端口保持一致. 10.1.22.26:876210.1.22.27:876210.1.22.28:876 ...
- C++学习总结(2)
1.const指针 指向常量的指针变量,其一般形式为 "const 类型名 * 指针变量名 " . 如下: int a=12,b=15; const int *p=&a; ...
- biztalk rosettanet 自定义 pip code
USE [BTARNDATA] GO /****** Object: StoredProcedure [dbo].[proc_GetActivityStatus] Script Date: 09/16 ...
- javascript中的iterable
遍历Array可以采用下标循环,遍历Map和Set就无法使用下标.为了统一集合类型,ES6标准引入了新的iterable类型,Array.Map和Set都属于iterable类型. 具有iterabl ...
- python——文件读写
open()函数用法: file-object = open(file_name, access_mode = ' ', buffering = -1) filename可以是相对路径或绝对路径,ac ...
- [Luogu4986] 逃离
Description 给定次数为 \(n\) 的函数 \(A(x),B(x),C(x)\),求 \(A^2(x)+B^2(x)-C^2(x)\) 在 \([L,R]\) 的零点.\(n\leq 10 ...
- S5PV210 串口实验(中断方式)
结合之前的串口实验(轮询方式)与中断体系分析,我们来做下中断方式的串口接收实验. start.S .global _start .global IRQ_handle _start: /* 关 Watc ...