You need to sign in to do that
Don't have an account?
RossG
Too many soql queries error in trigger code
Hi,
I've got a new bit of coe for my lead trigger. This should just push a custom object related to the lead, upon conversion, to the generated contact.
I'm hittinga too many soql queries on deployment and was wondering if anyone sees how I could optimize this bit of code to get around that. The code works fine in sandbox in testing but does throw this error when deploying to prod. Here's the
code:
I've got a new bit of coe for my lead trigger. This should just push a custom object related to the lead, upon conversion, to the generated contact.
I'm hittinga too many soql queries on deployment and was wondering if anyone sees how I could optimize this bit of code to get around that. The code works fine in sandbox in testing but does throw this error when deploying to prod. Here's the
trigger leadTtrigger on Lead (before update) { if (Trigger.isBefore) { // BEGIN PUSH PingOne Log records to contact on lead convert // if(Trigger.isUpdate){ Set<Id> leadIds = new Set<Id>(); Map<Id,Id> LeadIdContactId = new Map<Id,Id>(); for (Integer i = 0; i < Trigger.new.size(); i++){ if (Trigger.new[i].IsConverted == true && Trigger.old[i].isConverted == false){ leadIds.add(Trigger.new[i].id); LeadIdContactId.put(Trigger.new[i].id,Trigger.new[i].ConvertedContactId); } } List< PingOne_Log__c > CustomObjectsToUpdate = new List< PingOne_Log__c >(); List< PingOne_Log__c > customObjectEntries = [select Contact__c, Lead__c from PingOne_Log__c where lead__c in :leadIds]; for (Lead lead : [select id,ConvertedContactId from Lead where id in: leadIds]) { for (PingOne_Log__c CustomObject : customObjectEntries) { if (CustomObject.Lead__c == lead.Id) { CustomObject.contact__c = LeadIdContactId.get(lead.id); CustomObjectsToUpdate.add(CustomObject); } } } if(CustomObjectsToUpdate.size()>0) update CustomObjectsToUpdate; } }
code:
thanks,
Ramesh
thanks,
Ramesh