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特性,让它继承 ...
随机推荐
- 人生苦短:Python里的17个“超赞操作
人生苦短,我选Python”.那么,你真的掌握了Python吗? 1. 交换变量 有时候,当我们要交换两个变量的值时,一种常规的方法是创建一个临时变量,然后用它来进行交换.比如: # 输入 a = ...
- web自动化测试---xpath方式定位页面元素
在实际应用中,如果存在多个相同元素,包括属性相同时,一般会选用这种方式,当然如果定位属性唯一的话,也是可以使用的,不过这种方式没有像id,tag,name等容易理解,下面讲下xpath定位元素的方法 ...
- js排序问题
1.直接排序 var arr = [1,3,2,5]; function compare(a,b){ return a - b;//从小到大 return b - a;//从大到小 } console ...
- 私服仓库 nexus 环境搭建(win10)
1.1 简介: Nexus 是Maven仓库管理器,如果你使用Maven,你可以从Maven中央仓库 下载所需要的构件(artifact),但这通常不是一个好的做法,你应该在本地架设一个Maven仓库 ...
- 从零开始学 Web 之 JavaScript(四)数组
大家好,这里是「 Daotin的梦呓 」从零开始学 Web 系列教程.此文首发于「 Daotin的梦呓 」公众号,欢迎大家订阅关注.在这里我会从 Web 前端零基础开始,一步步学习 Web 相关的知识 ...
- 干货 | 请收下这份2018学习清单:150个最好的机器学习,NLP和Python教程
机器学习的发展可以追溯到1959年,有着丰富的历史.这个领域也正在以前所未有的速度进化.在之前的一篇文章中,我们讨论过为什么通用人工智能领域即将要爆发.有兴趣入坑ML的小伙伴不要拖延了,时不我待! 在 ...
- Java提高篇之抽象类与接口
接口和内部类为我们提供了一种将接口与实现分离的更加结构化的方法. 抽象类与接口是java语言中对抽象概念进行定义的两种机制,正是由于他们的存在才赋予java强大的面向对象的能力.他们两者之间对抽象概念 ...
- 探秘 Java 热部署二(Java agent premain)
# 前言 在前文 探秘 Java 热部署 中,我们通过在死循环中重复加载 ClassLoader 和 Class 文件实现了热部署的功能,但我们也指出了缺点-----不够灵活.需要手动修改文件等操作. ...
- [转]微擎应用笔记3--manifest.xml文件使用说明
本文转自:https://blog.csdn.net/seven_north/article/details/79508121 微擎在安装或卸载模块时会根据manifest.xml生成(或删除)数据库 ...
- MVC EF 执行SQL语句(转载)
MVC EF 执行SQL语句 最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷 学无止境,精益求精 闲着没事,看了一篇关于LI ...