公式

在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. Java学习笔记31(集合框架五:set接口、哈希表的介绍)

    set接口的特点: 1.不包含重复元素 2.set集合没有索引,只能用迭代器或增强for循环遍历 3.set的底层是map集合 方法和Collection的方法基本一样 set接口的实现类HashSe ...

  2. Postgresql日志收集

    PG安装完成后默认不会记录日志,必须修改对应的(${PGDATA}/postgresql.conf)配置才可以,这里只介绍常用的日志配置. 1.logging_collector = on/off   ...

  3. Python又把GUI界面攻下了,今天就告诉你怎么玩

    0.引言 学Python这么久了,一直想做个界面出来,最近发现Python有个内置库tkinter,利用它可以很轻松做出一些简易的UI界面,首先来看Python官方对Tkinter的说明: The t ...

  4. 【2019北京集训六】路径(path) 二分+DP

    此题niubi! 题目大意:给你一颗n个点的点带权无根树,现在请您进行以下两步操作: 1,选择一个$[0,T]$之间的整数$C$,并令所有的点权$wi$变为$(wi+C)%MOD$ 2,选择若干条点不 ...

  5. Git本地上传到服务器

    Git本地上传到服务器 2018年05月17日 10:45:02 VV-King 阅读数:643 标签: git   1.本机window系统的话先下载msysgit  下载后在开始菜单里面找到 &q ...

  6. Jenkins配置AD域认证

    Jenkins配置AD域认证 #检测域控地址ping youad.com指向的IP #如果不是实际域控ip地址,则修改hosts vi /etc/hosts #192.168.100.100替换为实际 ...

  7. mysql 开发进阶篇系列 28 数据库二进制包安装(centos系统准备)

    1. centos 7安装工作 对于mysql二进制安装,我这里在使用一台新的centos系统.准备好VMware,Xftp-6.0, Xshell-6.0.在VMware中网络使用桥接模式,分配20 ...

  8. 全网最详细的实用的搜索工具Listary和Everything对比的区别【堪称比Everything要好】(图文详解)

    不多说,直接上干货! 引言 无论是工作还是科研,我们都希望工作既快又好,然而大多数时候却迷失在繁杂的重复劳动中,久久无法摆脱繁杂的事情.   你是不是曾有这样一种想法:如果我有哆啦A梦的口袋,只要拿出 ...

  9. Ubuntu安装设置nginx和nohup常用操作

    nginx安装 Ubuntu直接从常规源中安装 apt-get install nginx 安装的目录 配置文件:/etc/nginx/ 主程序文件:/usr/sbin/nginx Web默认目录:/ ...

  10. C# GDI+编程之Graphics类

    GDI+是GDI的后继者,它是.NET Framework为操作图形提供的应用程序编程接口,主要用在窗体上绘制各种图形图像,可以用于绘制各种数据图像.数学仿真等. Graphics类是GDI+的核心, ...