Salesforce公式逻辑

时间:2019-06-05 17:03:34

标签: salesforce salesforce-lightning

我试图写一个公式来计算金额,但是如果serviceFee字段有一个值,它将使用该值。

所以

Field1 = Amount
Field2 = ServiceFee

如果ServiceFee具有值,则金额必须等于servicefee
如果有任何ClientType类型匹配,则公式将不会查看ServiceFee

我曾尝试部署它,但是该公式似乎仅执行ServiceFee部分

IF(ClientType.Id = '123456', 
   Amount- Discount, 
   IF(ClientType.Id = '7891011', 
      Amount + 1,
      IF(NOT(ISBLANK(ServiceFee)), 
         Amount = ServiceFee, 
      )
   )
)

1 个答案:

答案 0 :(得分:1)

问题是您试图在最后一条语句中为Amount分配一个值,该值在公式语法中不起作用。它不会编译,因为它实际上被解析为比较语句(返回布尔值)。

相反,首先确定公式应返回什么。如果您有多个客户端ID,请尝试使用CASE函数。这样,很清楚在每种情况下会发生什么。例如:

CASE(ClientType.Id,
  '123456',  Amount - Discount,
  '7891011', Amount + 1,
  IF(ISBLANK(ServiceFee), 0, ServiceFee)
)

最后一个参数是CASE函数的默认值,如果ClientType.Id不是先前的值之一,则将对其求值。