错误:编译错误:无法在第-1行-1列分配表达式

时间:2014-11-01 18:55:51

标签: triggers salesforce apex-code apex

我一直试图弄清楚如何从地图中获取值并将其插入到潜在客户中。来自这里的人非常有帮助,并写了一些代码。但是当我试图保存它时。我得到了上面的错误...我已经缩小了错误发生的位置。但我无法弄清楚为什么它会给我这个错误。

非常感谢任何帮助。下面用粗体表示的部分是(我相信)错误的来源。因为当我删除这些行时,我被允许保存触发器。

trigger UpdateVerifyLead on Lead (before insert, before update) {
  List<String> leadEmails = new List<String>();
  Map<String, Member_Verification__c > PrimaryEmailMemberVerificationMap = new  Map<String, Member_Verification__c >();

  for(Lead lead:Trigger.new){
      leadEmails.add(lead.Email);
  }
  for(Member_Verification__c member :[SELECT Id, Primary_Email__c,TFA_Salesforce_ID__C FROM Member_Verification__c WHERE Primary_Email__c != null and Primary_Email__c IN :leadEmails]){
      PrimaryEmailMemberVerificationMap.put(member.Primary_Email__c , member);   
  }

  // Problem section start
  for(Lead leadObj:Trigger.new){
      if(PrimaryEmailMemberVerificationMap.ContainsKey(leadObj.Email)){
          lead.TFA_Salesforce_ID__c = PrimaryEmailMemberVerificationMap.get(leadObj.Email).TFA_Salesforce_ID__C ;
          lead.Verified__c = True;
      }
  }
  // Problem section end
}

1 个答案:

答案 0 :(得分:2)

在外观中它有lead.TFA_Salesforce_ID__clead.Verified__c。变量lead永远不会在代码中声明。相反,它应该是for循环中定义的leadObj。 E.g。

for(Lead leadObj:Trigger.new) {
  if(PrimaryEmailMemberVerificationMap.ContainsKey(leadObj.Email)) {
      leadObj.TFA_Salesforce_ID__c = PrimaryEmailMemberVerificationMap.get(leadObj.Email).TFA_Salesforce_ID__C;
      leadObj.Verified__c = True;
  }
}

顺便说一下,Salesforce StackExchange是向Salesforce提出具体问题的好地方。