Salesforce机会验证规则

时间:2019-06-13 12:40:51

标签: validation salesforce

我正在研究商机对象的验证规则。目标是如果选择了“多选”选择列表中的一项,则绕过验证规则,否则代码将触发

这是我到目前为止的内容-除异常部分外,其他所有内容都可以正常工作-NOT(CONTAINS('Campaign_Tactic__c','Call Monitoring')))

因此,除非选择“呼叫监控”多选,否则验证规则将触发。

在以下情况下,验证规则应防止机会保存

  • 机会记录类型 =正确
  • 机会阶段 =已中标或提案请求
  • 着陆页设置字段 =空白/无数据
  • 广告系列战术多选字段 =不包含“呼叫监控选项”

    AND (
        RecordType.DeveloperName = "New_Opportunity",
        OR ( 
            ISPICKVAL(StageName, "Closed Won"), 
            ISPICKVAL(StageName, "Proposal Request")
        ), 
        AND ( 
            ISBLANK(TEXT(Landing_Page_Setup__c))
        ),
        (!CONTAINS('Campaign_Tactic__c','Call Monitoring'))
    )
    

1 个答案:

答案 0 :(得分:0)

Salesforce Formula Function Reference中,请务必注意

  

CONTAINS函数不支持多选选项列表。使用INCLUDES查看多选选择列表是否具有特定值。

此外,您提供给CONTAINS()的第一个参数是带引号的字符串文字,而不是字段引用,并且外部括号是多余的:

    (!CONTAINS('Campaign_Tactic__c','Call Monitoring'))

您的最终条款应使用INCLUDES(),如下所示:

!INCLUDES(Campaign_Tactic__c, 'Call Monitoring')

还请注意,带有单个参数的AND()可以单独替换为参数,因此

AND ( 
    ISBLANK(TEXT(Landing_Page_Setup__c))
),

简化为

ISBLANK(TEXT(Landing_Page_Setup__c)),

仅当该字段是一个选择列表时,才需要TEXT()调用。