公式

在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. dwr学习(一):简单dwr实例

    博客分类:  dwr   最近写ajax写烦了,想着能不能有个更简单的“ajax”,一问就问到这个dwr了.赶紧去官网学习了下,这里写个博客记录一下实例. 测试环境:tomcat6.0 1.新建一个w ...

  2. HttpClient 传输文件的两种方式

    1. org.apache.commons.httpclient.HttpClient 1.1 pom <dependency> <groupId>org.apache.htt ...

  3. IOS 数据存储之 Core Data详解

    Core Date是ios3.0后引入的数据持久化解决方案,它是是苹果官方推荐使用的,不需要借助第三方框架.Core Date实际上是对SQLite的封装,提供了更高级的持久化方式.在对数据库操作时, ...

  4. [视频]K8飞刀 S2-020 exploit getshell 动画教程

    [视频]K8飞刀 S2-020 exploit getshell 动画教程 链接:https://pan.baidu.com/s/1G5x7Dcu6pzHz6ZfSCDDmKA 提取码:05kw

  5. ubuntu18.04 出现 Command 'ifconfig' not found 问题的解决办法

    我们在虚拟主机中查看ip地址需要输入ifconfig,但是报以下错误: 系统提示我们安装 net-tools,当我们输入以下命令,即可安装完成. sudo apt-get install net-to ...

  6. C# winform嵌入unity3D

    最近做项目需要winform嵌入unity的功能,由于完全没接触过这类嵌入的于是在网上搜,有一种方法是UnityWebPlayer插件,也开始琢磨了一段时间,不过一会发现在5.4版本以后这个东西就被淘 ...

  7. ubuntu下 远程连接windows服务器工具Remmina

    工具不错 https://blog.csdn.net/skykingf/article/details/71539237

  8. dotnet new 命令使用模板生成Angular应用

    dotnet new 命令使用模板快速生成单页应用,本文以Angular应用为例. 最新版.NET Core SDK RC4 最大改动是更新了 dotnet new 命令. dotnet new 默认 ...

  9. spring security 实践 + 源码分析

    前言 本文将从示例.原理.应用3个方面介绍 spring data jpa. 以下分析基于spring boot 2.0 + spring 5.0.4版本源码 概述 Spring Security 是 ...

  10. Spring Boot 解决方案 - 会话

    连接无状态 使用 HTTP 的连接是无状态的,因此为了应对需要状态的服务例如用户登录,诞生了适合保存状态的设计-会话(session),本文就来探讨一下会话. 会话的使用 Spring Mvc 中使用 ...