公式

在Salesforce中,有些功能不需要从数据库中直接读取的数据,而是基于这些数据之间的关系来做出判断。这种情况下就要用到“公式”功能。

公式的概念和Excel中的公式类似,它不是固定的数据记录,而是由数据和逻辑组成的一组规则。在系统需要使用公式的时候,会即时运行公式中的规则生成一个结果。这个结果可以是任何数据类型,比如布尔值或文本或日期时间等。

和存储在数据库中的普通数据相比较,公式的好处在于灵活方便,其结果根据其他数据的变化而变化。

公式编辑器

公式编辑器出现在多种地方,最常见的地方是在创建对象的自定义字段时选择“公式”。

示例:创建公式

我们以一个例子来说明如何创建公式。我们要创建一个公式,给出一个布尔值,说明该“客户”的名字中是否包含“Oil”字样。

  1. 在设置界面下进入“客户”的“字段”界面,新建自定义字段

  2. 在自定义字段的类型选择页面,选择“公式”

  3. 在接下来的页面中,选择公式的返回类型,这里选择“复选框”

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

公式编辑器界面

公式编辑器分为五部分:

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

现在我们回到示例,在公式编辑器中编辑公式。

  1. 在编辑器的插入函数部分,找到“CONTAINS”函数,这个函数可以检查文本是否包含特定的字符。点击“插入所选函数”按钮,在编辑区便显示了该函数及其参数

  1. 每个插入的函数都自带参数列表,所以用户需要将默认的参数文本替换为需要的字段或其他参数。我们在这里将“compare_text”参数替换为“"Oil"”

  2. 下面要替换“CONTAINS”函数中的“text”参数,即需要比较的字符串。先选中“text”字样,点击“插入字段”按钮,在弹出的对话框中找到“客户名”,并点击“插入”按钮

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

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

  1. 公式的描述和帮助文本是选填内容。点击“下一页”按钮,继续完成字段的建立。接下来的步骤和建立其他字段类似

当公式创建完成后,回到“客户”的“字段”页面,可以看到在“自定义字段”部分的最下方,出现了刚加入的公式类型的字段。

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

验证规则

在Salesforce中,用户可以为每一个对象定义验证规则。验证规则主要用于验证该对象的数据是否符合特定的规则。当用户对于对象的某个字段的更改不符合用户定义的验证规则时,Salesforce会拒绝保存用户的输入。

比如:用户可以定义验证规则,使得每一个“业务机会”的“金额”数值必须大于1000,否则拒绝保存。

验证规则适用于对象被添加或更改的所有场景。最常见的情况是用户在“编辑”界面点击“保存”按钮时进行验证。在导入数据或执行Apex代码保存对象记录时,相关的验证规则也会启用。

注意,验证规则不是必须被启用的。在某些情况下(比如需要导入批量数据,而这些数据中包含不符合验证规则的记录时),可以暂时停用某些验证规则,以保证过程的顺利进行。

验证规则的核心是使用公式来作为逻辑判断。

示例:建立验证规则,“业务机会”的“金额”必须大于1000

  1. 在设置界面中,搜索“业务机会”,在搜索结果中点击“业务机会”菜单下的“验证规则”链接,进入“业务机会”的“验证规则”一览表界面

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

  1. 验证规则的编辑界面分为三部分,从上到下依次为“基本信息”、“错误条件公式”和“错误消息”

  2. 在基本信息部分输入规则的名字和描述,并勾选“启用”复选框

  3. “错误条件公式”部分可以定义验证的规则,和建立公式的方法一样。这里必须返回一个布尔值,如果为真,则说明用户的输入错误。在错误条件公式中插入字段“金额”并设置运算符大于1000

  4. 在“错误消息”部分,可以输入显示给用户的错误消息,并可以选择该错误消息是显示在页面的顶部或者某个字段的下面

  5. 当设置好各个选项之后,点击保存,验证规则便建立完成

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

Salesforce的公式和验证规则的更多相关文章

  1. Yii1.1的验证规则

    在Yii1.1的数据验证是由CValidator完成,在CValidator中提供了各种基本的验证规则 <?php public static $builtInValidators=array( ...

  2. ThinkPhp5.0模型验证规则

    Tp5提供了模型数据规则的验证功能,用于在数据save或者update前验证数据的有效性.Tp5提供校验规则的类为\Think\Validate,默认提供的校验规则可以查看该文件. 在Model文件中 ...

  3. EF里如何定制实体的验证规则和实现IObjectWithState接口进行验证以及多个实体的同时验证

    之前的Code First系列文章已经演示了如何使用Fluent API和Data Annotation的方式配置实体的属性,比如配置Destination类的Name属性长度不大于50等.本文介绍E ...

  4. TP5验证规则

    系统内置的验证规则如下: 格式验证类 require 验证某个字段必须,例如:'name'=>'require' number 或者 integer 验证某个字段的值是否为数字(采用filter ...

  5. [Asp.net MVC]Asp.net MVC5系列——在模型中添加验证规则

    目录 概述 在模型中添加验证规则 自定义验证规则 伙伴类的使用 总结 系列文章 [Asp.net MVC]Asp.net MVC5系列——第一个项目 [Asp.net MVC]Asp.net MVC5 ...

  6. Thinkphp 1.验证规则 2.静态定义 3.动态验证

    一.验证规则 数据验证可以对表单中的字段进行非法的验证操作.一般提供了两种验证方式: 静态定 义($_validate 属性)和动态验证(validate()方法). //验证规则 array( ar ...

  7. oracle ebs应用产品安全性-交叉验证规则

    转自: http://blog.itpub.net/298600/viewspace-625138/ 定义: Oracle键弹性域可以根据自定义键弹性域时所定义的规则,执行段值组合的自动交叉验证.使用 ...

  8. Struts2 验证框架 validation.xml 常用的验证规则

    validation.xml 的命名规则和放置路径: 文件名:<ActionClassName>-validation.xml <ActionClassName>就是要验证的A ...

  9. 爱上MVC3~为下拉列表框添加一个自定义验证规则

    回到目录 开发它的原因: 之前的同事,也是我的哥们,问我下拉列表框是否可以支持验证,这个问题看似简单,但确实MVC里有为我们提供,所以,只能自己写个扩展了,即自己写一个attribute特性,让它继承 ...

随机推荐

  1. ios webview下footer部分fixed失效问题

    场景: 如下图所示,一个很正常的页面需求,footer固定在底部,中间为滚动内容区 然后footer的css一般是这样的 footer{ position:fixed; bottom:; left:; ...

  2. php开发中应该注意的错误开关与常见处理[开发篇]

    我们可能一开始就接触一个项目的开发,刚开始时都是信心满满,一定把这个项目做得非常完美,但是时间那么少,任务那么多,我们就只有将就了. 首先,一般情况下,我们会加一个调试标志,define('APP_D ...

  3. 实现instanceof关键字

    如果用Java的伪代码来表现Java语言规范所描述的运行时语义,会是这样: // obj instanceof T boolean result; if (obj == null) { result ...

  4. mybatis-plus代码生成器

    public class MyBatisPlusGenerator { public static void main(String[] args) throws SQLException { //1 ...

  5. python编译生成的.pyc作用

    如果 Python 进程在机器上拥有写入权限,那么它将把程序的字节码保存为一个以 .pyc 为扩展名的文件( ".pyc" 就是编译过的 ".py" 源代码). ...

  6. SVN 分支主干的相互合并

    1.主干合并到分支 1在本地trunk中先update一下,有冲突的解决冲突,保证trunk和repository已经完全同步, 2.在/branches /MyProject上右键,依次选择”Tor ...

  7. vector源码3(参考STL源码--侯捷):pop_back、erase、clear、insert

    vector源码1(参考STL源码--侯捷) vector源码2(参考STL源码--侯捷):空间分配.push_back vector源码(参考STL源码--侯捷)-----空间分配导致迭代器失效 v ...

  8. JavaScript设计模式----装饰者模式

    装饰者模式的定义: 装饰者(decorator)模式能够在不改变对象自身的基础上,在程序运行期间给对像动态的添加职责.与继承相比,装饰者是一种更轻便灵活的做法. 装饰者模式的特点: 可以动态的给某个对 ...

  9. SSM整合(四)-整合后配置文件汇总

    1.新建Maven项目创建pom.xml pom.xml内容如下 <project xmlns="http://maven.apache.org/POM/4.0.0" xml ...

  10. postman自定义函数实现 时间函数

    一:主要内容 postman环境变量方式封装格式化日期函数:yyyy-MM-dd HH:mm:ss postman利用moment模块实现格式化日期函数:yyyy-MM-dd HH:mm:ss 二:p ...