You need to sign in to do that
Don't have an account?
AAI
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);
}
}
}
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);
}
}
}
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....