Salesforce的公式和验证规则
公式
在Salesforce中,有些功能不需要从数据库中直接读取的数据,而是基于这些数据之间的关系来做出判断。这种情况下就要用到“公式”功能。
公式的概念和Excel中的公式类似,它不是固定的数据记录,而是由数据和逻辑组成的一组规则。在系统需要使用公式的时候,会即时运行公式中的规则生成一个结果。这个结果可以是任何数据类型,比如布尔值或文本或日期时间等。
和存储在数据库中的普通数据相比较,公式的好处在于灵活方便,其结果根据其他数据的变化而变化。
公式编辑器
公式编辑器出现在多种地方,最常见的地方是在创建对象的自定义字段时选择“公式”。
示例:创建公式
我们以一个例子来说明如何创建公式。我们要创建一个公式,给出一个布尔值,说明该“客户”的名字中是否包含“Oil”字样。
在设置界面下进入“客户”的“字段”界面,新建自定义字段
在自定义字段的类型选择页面,选择“公式”
在接下来的页面中,选择公式的返回类型,这里选择“复选框”

- 进入公式编辑器。在此处,可以选择“简单公式”或“高级公式”。以“高级公式”为例,简单说明一下公式编辑器的界面
公式编辑器界面

公式编辑器分为五部分:
- 插入字段和运算符。这部分包括两个按钮,分别用于插入字段和运算符。可以插入的字段包括了当前对象的字段以及和当前对象相关联的对象的字段,比如“客户”中的字段。可以插入的运算符包括数学运算和逻辑运算的运算符
- 插入函数。这部分位于界面的右边部分。用户可以从列表中选择需要插入的函数,这些函数和Excel中的函数类似,包括了数学运算、逻辑运算,也包括了其他的一些功能,比如判断字符串是否从某些字符开始、判断某字段的值是否是选项列表中的值等等
- 公式编辑区。这部分就是界面中间最大的空白部分,用户插入的字段、运算符、函数都要在此进行编辑。在编辑区的下方还有一个“检查语法”按钮,系统可以自动检查用户输入的公式是否完整和符合规范
- 公式描述。这部分位于编辑部分的下方,供用户输入关于此公式的描述和帮助文本
- 空白字段处理部分。这部分可以用来设置当某些数据的值为空的时候,是否将其作为零或空白来处理
现在我们回到示例,在公式编辑器中编辑公式。
- 在编辑器的插入函数部分,找到“CONTAINS”函数,这个函数可以检查文本是否包含特定的字符。点击“插入所选函数”按钮,在编辑区便显示了该函数及其参数

每个插入的函数都自带参数列表,所以用户需要将默认的参数文本替换为需要的字段或其他参数。我们在这里将“compare_text”参数替换为“"Oil"”
下面要替换“CONTAINS”函数中的“text”参数,即需要比较的字符串。先选中“text”字样,点击“插入字段”按钮,在弹出的对话框中找到“客户名”,并点击“插入”按钮

- 在编辑区域,可以看到在“CONTAINS”函数中,“客户名”字段“Name”已经替换了之前的“text”字样

- 点击编辑区域下方的“检查语法”按钮,系统会检查输入的公式,然后刷新此页面,并给出检查的结果

- 公式的描述和帮助文本是选填内容。点击“下一页”按钮,继续完成字段的建立。接下来的步骤和建立其他字段类似
当公式创建完成后,回到“客户”的“字段”页面,可以看到在“自定义字段”部分的最下方,出现了刚加入的公式类型的字段。

在客户的详细信息页面里,可以看到此公式字段的值。

验证规则
在Salesforce中,用户可以为每一个对象定义验证规则。验证规则主要用于验证该对象的数据是否符合特定的规则。当用户对于对象的某个字段的更改不符合用户定义的验证规则时,Salesforce会拒绝保存用户的输入。
比如:用户可以定义验证规则,使得每一个“业务机会”的“金额”数值必须大于1000,否则拒绝保存。
验证规则适用于对象被添加或更改的所有场景。最常见的情况是用户在“编辑”界面点击“保存”按钮时进行验证。在导入数据或执行Apex代码保存对象记录时,相关的验证规则也会启用。
注意,验证规则不是必须被启用的。在某些情况下(比如需要导入批量数据,而这些数据中包含不符合验证规则的记录时),可以暂时停用某些验证规则,以保证过程的顺利进行。
验证规则的核心是使用公式来作为逻辑判断。
示例:建立验证规则,“业务机会”的“金额”必须大于1000
- 在设置界面中,搜索“业务机会”,在搜索结果中点击“业务机会”菜单下的“验证规则”链接,进入“业务机会”的“验证规则”一览表界面

- 点击“新建”按钮进入新建界面

验证规则的编辑界面分为三部分,从上到下依次为“基本信息”、“错误条件公式”和“错误消息”
在基本信息部分输入规则的名字和描述,并勾选“启用”复选框
“错误条件公式”部分可以定义验证的规则,和建立公式的方法一样。这里必须返回一个布尔值,如果为真,则说明用户的输入错误。在错误条件公式中插入字段“金额”并设置运算符大于1000
在“错误消息”部分,可以输入显示给用户的错误消息,并可以选择该错误消息是显示在页面的顶部或者某个字段的下面
当设置好各个选项之后,点击保存,验证规则便建立完成

打开任一业务机会,点击“编辑”,在“金额”部分输入50,点击“保存”按钮,可以看到刚才定义的验证规则已经生效,错误信息也显示在了窗口中。

Salesforce的公式和验证规则的更多相关文章
- Yii1.1的验证规则
在Yii1.1的数据验证是由CValidator完成,在CValidator中提供了各种基本的验证规则 <?php public static $builtInValidators=array( ...
- ThinkPhp5.0模型验证规则
Tp5提供了模型数据规则的验证功能,用于在数据save或者update前验证数据的有效性.Tp5提供校验规则的类为\Think\Validate,默认提供的校验规则可以查看该文件. 在Model文件中 ...
- EF里如何定制实体的验证规则和实现IObjectWithState接口进行验证以及多个实体的同时验证
之前的Code First系列文章已经演示了如何使用Fluent API和Data Annotation的方式配置实体的属性,比如配置Destination类的Name属性长度不大于50等.本文介绍E ...
- TP5验证规则
系统内置的验证规则如下: 格式验证类 require 验证某个字段必须,例如:'name'=>'require' number 或者 integer 验证某个字段的值是否为数字(采用filter ...
- [Asp.net MVC]Asp.net MVC5系列——在模型中添加验证规则
目录 概述 在模型中添加验证规则 自定义验证规则 伙伴类的使用 总结 系列文章 [Asp.net MVC]Asp.net MVC5系列——第一个项目 [Asp.net MVC]Asp.net MVC5 ...
- Thinkphp 1.验证规则 2.静态定义 3.动态验证
一.验证规则 数据验证可以对表单中的字段进行非法的验证操作.一般提供了两种验证方式: 静态定 义($_validate 属性)和动态验证(validate()方法). //验证规则 array( ar ...
- oracle ebs应用产品安全性-交叉验证规则
转自: http://blog.itpub.net/298600/viewspace-625138/ 定义: Oracle键弹性域可以根据自定义键弹性域时所定义的规则,执行段值组合的自动交叉验证.使用 ...
- Struts2 验证框架 validation.xml 常用的验证规则
validation.xml 的命名规则和放置路径: 文件名:<ActionClassName>-validation.xml <ActionClassName>就是要验证的A ...
- 爱上MVC3~为下拉列表框添加一个自定义验证规则
回到目录 开发它的原因: 之前的同事,也是我的哥们,问我下拉列表框是否可以支持验证,这个问题看似简单,但确实MVC里有为我们提供,所以,只能自己写个扩展了,即自己写一个attribute特性,让它继承 ...
随机推荐
- Linux pwn入门教程(1)——栈溢出基础
作者:Tangerine@SAINTSEC 原文来自:https://bbs.ichunqiu.com/thread-42241-1-1.html 0×00 函数的进入与返回 要想理解栈溢出,首先必须 ...
- 第九节:详细讲解Java中的泛型,多线程,网络编程
前言 大家好,给大家带来详细讲解Java中的泛型,多线程,网络编程的概述,希望你们喜欢 泛型 泛型格式:ArrayList list= new ArrayList(); ArrayList list= ...
- 使用 Maven 插件将 class(字节码文件),resource(资源文件),lib(依赖的jar包)分开打包
1. 在pom文件中对各个插件进行配置 <?xml version="1.0" encoding="UTF-8"?> <project xml ...
- 基于Flume的日志收集系统方案参考
前言 本文将简单介绍两种基于Flume的日志收集系统可能的架构方案,可根据不同的实际场景参考使用. 方案一 示例图如下: 说明: 每个日志源(http上报.日志文件等)对应一个Agent-c用于收集对 ...
- 交换路由中期测验20181226(动态路由配置与重分发、NAT转换、ACL访问控制列表)
测试拓扑: 接口配置信息 HostName 接口 IP地址 网关 Server 0 Fa0 172.16.15.1/24 172.16.15.254 Server 1 Fa0 100.2.15.200 ...
- Java-jacob-文件转HTML
Java-jacob-文件转HTML: 下载jacob的jar包,然后举个例子. public static final int WORD_HTML = 8; public static final ...
- Java设计模式学习记录-解释器模式
前言 这次介绍另一个行为模式,解释器模式,都说解释器模式用的少,其实只是我们在日常的开发中用的少,但是一些开源框架中还是能见到它的影子,例如:spring的spEL表达式在解析时就用到了解释器模式,以 ...
- U3D Time类
Time.time 表示从游戏开发到现在的时间,会随着游戏的暂停而停止计算. Time.timeSinceLevelLoad 表示从当前Scene开始到目前为止的时间,也会随着暂停操作而停止. Tim ...
- .Net实现微信公众平台开发接口(二) 之 “获取access_token”
access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token. 接口调用请求说明 http请求方式: GET https://api.weixin.qq.com/ ...
- 修改Mysql字符集
第一种 一.修改my.ini配置文件(MySQL配置文件) character_set_server = utf8 #设置字符集 重启mysql数据库服务 查看当前数据库字符集 show VARIAB ...