【问题标题】:Creating Salesforce Custom Formula Field - (Error Incorrect Parameter Type)创建 Salesforce 自定义公式字段 -(错误参数类型不正确)
【发布时间】:2018-01-04 06:32:12
【问题描述】:

我正在为根据条件进行多次计算的佣金字段创建公式。我目前收到一条错误消息(错误:函数'AND()'的参数类型不正确。预期的布尔值,收到的数字)。我应该如何修改公式来解决这个问题?

IF(AND(Order__r.New_Amount_Outstanding__c = 0,Order__r.RecordTypeId="Bespoke Item",ISPICKVAL( Payment_type__c , '存款'), Date__c >= DATE(2017,04,01)),(Order__r.Amount_RollUp__c) * 1.2/100,IF(AND(Order__r.RecordTypeId="Bespoke Item",ISPICKVAL( Payment_type__c , 'Deposit'), Date__c "定制项目",(Order__r.New_New_Net__c *1.2/100), NULL)))

它基本上由三个场景组成:

IF(AND(Order__r.New_Amount_Outstanding__c = 0,Order__r.RecordTypeId="Bespoke Item",ISPICKVAL( Payment_type__c , '存款'), Date__c >= DATE(2017,04,01)),(Order__r.Amount_RollUp__c) * 1.2/100,

IF(AND(Order__r.RecordTypeId="Bespoke Item",ISPICKVAL( Payment_type__c , 'Deposit'), Date__c

IF(Order__r.RecordTypeId"定制项目",(Order__r.New_New_Net__c *1.2/100),

空)))

【问题讨论】:

    标签: salesforce formulas salesforce-communities


    【解决方案1】:

    你有一个放错地方的“)”。当你缩进公式时,它变得很明显:

    IF(
      AND(
        Order__r.New_Amount_Outstanding__c = 0,
        Order__r.RecordTypeId="Bespoke Item",
        ISPICKVAL( Payment_type__c , 'Deposit'), 
        Date__c >= DATE(2017,04,01)
      ),
      (Order__r.Amount_RollUp__c) *1.2/100,
      IF(
        AND(
          Order__r.RecordTypeId="Bespoke Item",
          ISPICKVAL( Payment_type__c , 'Deposit'), 
          Date__c < DATE(2017,04,01),
          (Order__r.New_New_Net__c) *1.2/100),
          IF(Order__r.RecordTypeId<>"Bespoke Item",
            (Order__r.New_New_Net__*1.2/100), 
            NULL
          )
       )
    )
    

    应该是:

    IF(
      /*Test this Argument*/
      AND(
        Order__r.New_Amount_Outstanding__c = 0,
        Order__r.RecordTypeId="Bespoke Item",
        ISPICKVAL( Payment_type__c , 'Deposit'), 
        Date__c >= DATE(2017,04,01)
      ),
      /* If True */
      (Order__r.Amount_RollUp__c) *1.2/100,
      /* If False */
      IF(
        /* Test this Argument */
        AND(
          Order__r.RecordTypeId="Bespoke Item",
          ISPICKVAL( Payment_type__c , 'Deposit'), 
          Date__c < DATE(2017,04,01)
        ),
        /* If True */
        (Order__r.New_New_Net__c) *1.2/100),
        /* If False*/
        IF(
           /* Test this Argument */
           Order__r.RecordTypeId<>"Bespoke Item",
           /* If True */
           (Order__r.New_New_Net__*1.2/100), 
           /* If False */
           NULL
        )
      )
    )
    

    Order__r.RecordTypeId="Bespoke Item" 还会评估为 TRUE 吗?我认为这将是一个 ID。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多