从List <opportunity>到List <integer>的非法分配

时间:2015-04-30 08:03:39

标签: salesforce

更新记录时出现错误。如果ExpiryDate字段为空,则应该使用CloseDate更新字段。但它出现错误:从List<Opportunity>List<Integer>

的非法转让
If(Trigger.Isupdate){
    Exp=[Select ExpiryDate__c from Opportunity where ExpiryDate__c=Null];
    //clo=[Select CloseDate from Opportunity];
    for(opportunity Opp:Trigger.New){
        if(Opp.ExpiryDate__c=null){
            Exp.add(Opp.CloseDate);
            update Exp;
        }
    }
}

1 个答案:

答案 0 :(得分:1)

对于您尝试使用此触发器代码完成的操作,有点令人困惑。它似乎并没有真正做任何有意义的事情。

然而,有几点:

  • 错误将来自以下行:Exp=[Select ExpiryDate__c from Opportunity where ExpiryDate__c=Null];。我假设Exp在触发器(List<Integer>)之前被声明为整数列表。试试List<Opportunity> exp2 = [Select ExpiryDate__c from Opportunity where ExpiryDate__c=Null];
  • 为什么要将机会CloseDate添加到Exp集合中?如果Exp是整数列表,则这将失败,因为CloseDate是一个日期。如果它是一个机会清单,它仍然会失败。
  • update Exp;应在for循环中占用。阅读Salesforce中有bulkificaiton个触发器的内容。