+ Start a Discussion
AAIAAI 

Create an apex class for a trigger

Hi all,
I would need to create an Apex class for the following trigger. I would apprecite any help. I am newbie. Thanks in advance.

trigger Unqualified on Lead (before update ) {
System.debug ('**entro en el trigger before update'); // es un comentario para verlo en el log//

List<Lead> Leads = New List <Lead>();// guarda la información de los leads. Declara e inicializa. List (nombre del objeto) //
List<Id> Ids = New List <Id>();
for (Lead l: Trigger.new){
    Ids.add (l.Id);
}
//Se obtienen los Id de los procesos de aprobación y de los Leads//
List<ProcessInstance> instances = [select Id, TargetObjectId from ProcessInstance where TargetObjectId in :Ids];
Map<Id,Id> LeadProcessMap = new Map<Id,Id>();
Ids = New List <Id>();
for(ProcessInstance pi:instances){
        LeadProcessMap.put (pi.TargetObjectId,pi.Id); 
        Ids.add (pi.Id);// se guardan los Ids de los process instances para que los coja la segunda query//
    }//Con el for se pobla el mapa compuesto por el Id del Lead y del Process Instance//
System.Debug ('** mapa1: '+LeadProcessMap);
    
List<ProcessInstanceStep> instancesSteps = [select Comments,ProcessInstanceId from ProcessInstanceStep where ProcessInstanceId in :Ids];
Map<Id,String> LeadProcessStepMap = new Map<Id,String>(); // String porque hace referencia a comentarios//
for(ProcessInstanceStep pis:instancesSteps){
        LeadProcessStepMap.put (pis.ProcessInstanceId, pis.Comments); 
    }//Con el for se pobla el mapa compuesto por el Id del Lead y del Process Instance//

System.Debug ('** mapa2: '+LeadProcessStepMap);

 //recorre todos los leads//   
for (Lead l: Trigger.new){
    if (l.recordtypeId == '0120Y000000Pquz' && l.status == 'Unqualified' && LeadProcessStepMap.get(LeadProcessMap.get(l.Id))!= null){
        
        System.debug ('** razon2: '+LeadProcessStepMap.get(LeadProcessMap.get(l.Id)));
            l.ReasonRejectedByCommercialPlanning__c = LeadProcessStepMap.get(LeadProcessMap.get(l.Id));
        System.debug ('** razon: '+l.ReasonRejectedByCommercialPlanning__c);
        }


       
}
Harish M 8Harish M 8
TRIGGER:
trigger Unqualified on Lead (before update ) {
System.debug ('**entro en el trigger before update'); // es un comentario para verlo en el log//

List<Lead> Leads = New List <Lead>();// guarda la información de los leads. Declara e inicializa. List (nombre del objeto) //
List<Id> Ids = New List <Id>();
for (Lead l: Trigger.new){
    Ids.add (l.Id);
}
if(!Ids.isEmpty() && Ids.size()>0){
 exampleApexClass.exampleMethod(Ids);
}


Apex Class:
Public class exampleApexClass{
public static void exampleMethod(List<Id> Ids){
List<ProcessInstance> instances = [select Id, TargetObjectId from ProcessInstance where TargetObjectId in :Ids];
Map<Id,Id> LeadProcessMap = new Map<Id,Id>();
Ids = New List <Id>();
for(ProcessInstance pi:instances){
        LeadProcessMap.put (pi.TargetObjectId,pi.Id); 
        Ids.add (pi.Id);// se guardan los Ids de los process instances para que los coja la segunda query//
    }//Con el for se pobla el mapa compuesto por el Id del Lead y del Process Instance//
System.Debug ('** mapa1: '+LeadProcessMap);
    
List<ProcessInstanceStep> instancesSteps = [select Comments,ProcessInstanceId from ProcessInstanceStep where ProcessInstanceId in :Ids];
Map<Id,String> LeadProcessStepMap = new Map<Id,String>(); // String porque hace referencia a comentarios//
for(ProcessInstanceStep pis:instancesSteps){
        LeadProcessStepMap.put (pis.ProcessInstanceId, pis.Comments); 
    }//Con el for se pobla el mapa compuesto por el Id del Lead y del Process Instance//

System.Debug ('** mapa2: '+LeadProcessStepMap);

 //recorre todos los leads//   
for (Lead l: Trigger.new){
    if (l.recordtypeId == '0120Y000000Pquz' && l.status == 'Unqualified' && LeadProcessStepMap.get(LeadProcessMap.get(l.Id))!= null){
        
        System.debug ('** razon2: '+LeadProcessStepMap.get(LeadProcessMap.get(l.Id)));
            l.ReasonRejectedByCommercialPlanning__c = LeadProcessStepMap.get(LeadProcessMap.get(l.Id));
        System.debug ('** razon: '+l.ReasonRejectedByCommercialPlanning__c);
        }

}

       
}


Just check it....