创建验证规则
学习目标
完成本单元后,您将能够:
- 描述验证规则的两个用例。
- 列出验证规则包含的元素。
- 创建一条验证规则。
验证规则简介
验证规则验证用户在记录中输入的数据是否符合您指定的标准,然后才能保存。验证规则可以包含计算一个或多个字段中的数据并返回“真”或“假”值的公式或表达式。当验证规则返回值为“True”时,表明用户输入的数据中包含无效值。验证规则还可以包含在用户根据指定条件输入无效值时向用户显示的错误提示。使用这些规则可以有效地提高数据质量。例如,您可以确保所有电话号码字段都包含指定的格式,或者应用于某些产品的折扣永远不会超过定义的百分比。
定义验证规则
您可以为对象、字段、市场活动成员或案例里程碑创建验证规则。在这些步骤中,我们创建了一个验证规则,并定义当用户尝试保存的客户编号长度不正确时,会触发该规则。
创建一条验证规则
- 从 Setup(设置)中打开 Object Manager(对象管理器)并单击 Account(客户)。
- 在左侧边栏,单击 Validation Rules(验证规则)。
- 单击 New(新建)。
- 为您的验证规则输入如下属性:
- Rule Name(规则名称):
Account_Number_8_Characters
- Error Condition Formula(错误条件公式):
LEN( AccountNumber) <> 8
- Rule Name(规则名称):
- Error Message(错误提示):
Account number must be 8 characters long
(客户编号必须为 8 个字符)。 - 要检查公式是否错误,请单击 Check Syntax(检查语法)。
- 单击 Save(保存)完成规则创建。
以下为用户在字段中输入不正确的客户编号时,验证规则错误提示的显示方式。
验证规则示例
以下是一些您可以尝试的验证规则示例。
客户编号为数值类型
如果公式中的所有值都为真,则 AND 函数的返回值为“真”,如果一个或多个值为假,则返回值为“假”。ISBLANK 函数确定表达式是否具有值。ISNUMBER 函数确定表达式的值是否为数字。NOT 函数为 TRUE 返回 FALSE,为 FALSE 返回 TRUE。在该示例中,验证规则确定客户编号是否既不是空白也不是数字。值为“True”时,表明用户输入的数据中包含无效值。也就是说,如果用户为客户编号输入非数字值,则验证规则将返回“True”响应并发送错误提示。
Field(字段) |
Value(值) |
---|---|
Description(说明): |
验证 Account Number(客户编号)在不是空白的情况下,确认是数据类型。 |
Formula(公式): |
AND( NOT(ISBLANK(AccountNumber)), NOT(ISNUMBER(AccountNumber)) ) |
Error Message(错误提示): |
Account Number is not numeric(客户编号不是数据类型)。 |
Error Location(错误位置): |
Account Number(客户编号) |
日期必须是本年度
YEAR 函数为给定日期返回四位数字的年份信息。TODAY 函数返回当前日期<>
(Not Equal) 运算符确定一个值是否不等于另一个值。本示例中,验证规则确定给定日期的年份是否不等于今天日期的年份。值为“True”时,表明用户输入的数据中包含无效值。也就是说,如果用户输入的日期不为当前年份,则验证规则将返回“True”响应并发送错误提示。
Field(字段) |
Value(值) |
---|---|
Description(说明): |
Validates that a custom date field contains a date within the current year(验证自定义日期字段是否包含当前年份中的日期)。 |
Formula(公式): |
YEAR( My_Date__c ) <> YEAR ( TODAY() ) |
Error Message(错误提示): |
Date must be in the current year(日期必须是本年度)。 |
Error Location(错误位置): |
My Date(我的日期) |
数值范围验证
在该示例中,验证规则确定两个值(薪酬最大值和薪酬最小值)之间的差值是否大于 20,000 美元。值为“True”时,表明用户输入的数据中包含无效值。也就是说,如果用户输入两个值的差值大于 20,000 美元,则验证规则将返回“True”响应并发送错误提示。
Field(字段) |
Value(值) |
---|---|
Description(说明): |
验证两个自定义字段,即 Salary Min(薪酬最小值)和 Salary Max(薪酬最大值)之间的差值不大于 20,000 美元。 |
Formula(公式): |
(Salary_Max__c - Salary_Min__c) > 20000 |
Error Message(错误提示): |
Salary range must be within $20,000(薪酬幅度必须在 20,000 美元以内)。Adjust the Salary Max or Salary Min values(调整薪酬最大值与薪酬最小值的取值)。 |
Error Location(错误位置): |
Salary Max(薪酬最大值) |
网站拓展名
如果公式中的所有值都为真,则 AND 函数的返回值为“真”,如果一个或多个值为假,则返回值为“假”。<>
(Not Equal) 运算符确定一个值是否不等于另一个值。在本示例中,如果用户输入的网站 URL 的扩展名不等于所有六个有效扩展名,则验证规则将返回 True 响应并发送错误提示。如果用户输入的网站 URL 的扩展名与其中一个有效扩展名相同,则验证规则将返回 False 响应并且不会发送错误提示,这是因为用户输入的数据是有效的。
Field(字段) |
Value(值) |
---|---|
Description(说明): |
验证名为 Web Site(网址)的自定义字段,以确保其最后四个字符位于有效的网站扩展名的显式集合中。 |
Formula(公式): |
AND( RIGHT( Web_Site__c, 4) <> ".COM", RIGHT( Web_Site__c, 4) <> ".com", RIGHT( Web_Site__c, 4) <> ".ORG", RIGHT( Web_Site__c, 4) <> ".org", RIGHT( Web_Site__c, 4) <> ".NET", RIGHT( Web_Site__c, 4) <> ".net" ) |
Error Message(错误提示): |
网址必须包含 .com、.org、或者 .net 拓展名。 |
Error Location(错误位置): |
Web Site(网址) |
有效开单国家/地区
如果公式中的一个或多个表达式为真,则 OR 函数返回“真”响应,如果所有表达式都为假,则返回“假”响应。LEN 函数返回指定文本字符串中的字符数。在该示例中,通过验证规则确认用户为开单国家/地区代码输入的值是一个字符(而不是必需的两个字符),还是不包含有效的两个字符代码中的任意一个。如果这些条件中的任何一个为真,则验证规则将返回值“True”并发送错误提示。如果用户输入有效的开单国家/地区代码,则公式中的两个表达式都为假,即 LEN 不为 1,并且数据确实包含其中一个有效值。在这种情况下,验证规则返回值“False”并且不发送错误提示。
Field(字段) |
Value(值) |
---|---|
Description(说明): |
验证客户 Billing Country(开单国家/地区)是有效的 ISO 3166 两字符代码。 |
Formula(公式): |
OR( LEN(BillingCountry) = 1, NOT( CONTAINS( "AF:AX:AL:DZ:AS:AD:AO:AI:AQ:AG:AR:AM:" & "AW:AU:AZ:BS:BH:BD:BB:BY:BE:BZ:BJ:BM:BT:BO:" & "BA:BW:BV:BR:IO:BN:BG:BF:BI:KH:CM:CA:CV:KY:" & "CF:TD:CL:CN:CX:CC:CO:KM:CG:CD:CK:CR:CI:HR:" & "CU:CY:CZ:DK:DJ:DM:DO:EC:EG:SV:GQ:ER:EE:ET:FK:" & "FO:FJ:FI:FR:GF:PF:TF:GA:GM:GE:DE:GH:GI:GR:GL:" & "GD:GP:GU:GT:GG:GN:GW:GY:HT:HM:VA:HN:HK:HU:" & "IS:IN:ID:IR:IQ:IE:IM:IL:IT:JM:JP:JE:JO:KZ:KE:KI:" & "KP:KR:KW:KG:LA:LV:LB:LS:LR:LY:LI:LT:LU:MO:MK:" & "MG:MW:MY:MV:ML:MT:MH:MQ:MR:MU:YT:MX:FM:MD:MC:" & "MC:MN:ME:MS:MA:MZ:MM:MA:NR:NP:NL:AN:NC:NZ:NI:" & "NE:NG:NU:NF:MP:NO:OM:PK:PW:PS:PA:PG:PY:PE:PH:" & "PN:PL:PT:PR:QA:RE:RO:RU:RW:SH:KN:LC:PM:VC:WS:" & "SM:ST:SA:SN:RS:SC:SL:SG:SK:SI:SB:SO:ZA:GS:ES:" & "LK:SD:SR:SJ:SZ:SE:CH:SY:TW:TJ:TZ:TH:TL:TG:TK:" & "TO:TT:TN:TR:TM:TC:TV:UG:UA:AE:GB:US:UM:UY:UZ:" & "VU:VE:VN:VG:VI:WF:EH:YE:ZM:ZW", BillingCountry))) |
Error Message(错误提示): |
A valid two-letter country code is required(有效的两字母国家/地区代码是必需的)。 |
Error Location(错误位置): |
Billing Country(开单国家/地区) |
资源