Search code examples
triggerssalesforceapex-codeapex

Error: Compile Error: Expression cannot be assigned at line -1 column -1


I've been trying to figure out how to get a value from a Map and insert it into a lead. Someone from here was very helpful, and wrote some code. But when I try to save it. I get the above error... I have narrowed down where the error occurs. But I can't figure out why it is giving me this error.

Any help would be greatly appreciated. The part below that is bolded is (I believe) where the error is coming from. Because when I remove those lines, I am allowed to save the trigger.

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
}

Solution

  • Within the look it has lead.TFA_Salesforce_ID__c and lead.Verified__c. The variable lead is never declared in the code. Instead it should be leadObj as defined in the for loop. 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;
      }
    }
    

    Incidentally, the Salesforce StackExchange is a great place to ask Salesforce specific questions.