验证规则语法

时间:2012-11-26 08:45:47

标签: salesforce

我有两个值(A,B)和一个自定义字段的选项列表。如果选择的值不是B,则不应输入自定义字段。如果选择值B,则可以输入自定义字段。使用什么功能。 ?我很困惑。请帮助

2 个答案:

答案 0 :(得分:2)

这样的东西?我使用了帐户中的标准字段,Rating是一个选项列表,ShippingCountry是文本字段。

验证标准:

ISPICKVAL(Rating, "Hot") && ISBLANK(ShippingCountry) || 
NOT(ISPICKVAL(Rating, "Hot")) && NOT(ISBLANK(ShippingCountry))

错误讯息:

  

当评级为“热门”时,必须提供送货国家/地区。请   更改评级或清除“运输国家/地区”字段中的值。

如果你熟悉逻辑,简化等,条件基本上是XNOR;)但是我们在函数参考中没有XOR函数。

您还可以考虑将其拆分为2个单独的验证规则 - 这将让您编写更清晰的说明用户必须执行的操作“您已选择B - >填写此值!;您已选择A - >清除此值

答案 1 :(得分:1)

使用示例眼睛提示,你可以进一步减小这种情况的大小:

ISPICKVAL( Rating, "Hot" ) = ISBLANK( ShippingCountry )

那是(拼写出来):

  • 如果评级为热且ShippingCountry为空,则两个条件均为TRUE且彼此相等,因此验证将激活并显示错误

  • 如果评级不热并且Shippingcountry不是空白,则两个条件都将为FALSE但彼此​​相等,因此验证将激活并显示错误

当您必须为许多字段指定类似的条件时,这种类型的较短XOR表达式可能很方便,例如验证说“运输街道,城市,州和邮政编码必须全部输入或全部为空白”。 / p>

在这种情况下,您可以输入:

ISBLANK( ShippingStreet ) != ISBLANK( ShippingCity ) 
|| ISBLANK( ShippingCity ) != ISBLANK( ShippingState ) 
|| ISBLANK( ShippingState ) != ISBLANK( ShippingPostalCode )

注意将街道与城市的状态一直连接到邮政编码的每个条件之间的传递性。

表达式基本上表示下面列出的两个条件:

  • 如果街道为空白,则城市应为空白,如果城市为空白,则状态应为空白,如果状态为空白,则邮政编码应为空白

  • 如果街道不是空白,则城市不应为空白,如果城市不是空白,则状态不应为空白,如果状态不为空,则邮政编码不应为空白