You need to sign in to do that
Don't have an account?
krishnag
how to bulkify a trigger
hi ,
I have a trigger which was working fine till now and when we load data using data loader the trigger is not firing and throwing an exception too many SOQL queries 21.
DO i need to write a trigger ti handle large data speerately or is there anyway please suggest me i am pasting my trigger code.
trigger UpdateRelationShipOnAccount on Account (before update) { //start of condition 1 if(Trigger.new[0].Company_Relationship__c!='Broker' && Trigger.new[0].Company_Relationship__c!='Employee'){ System.debug('In if loop'); list<Policy__c> NonActivePolicy1 = [select Id,Policy_Status__c from Policy__c where Company_Name__c =:Trigger.new[0].Id limit 1]; // start of condition 2 if(!NonActivePolicy1.isEmpty()){ Trigger.new[0].Company_Relationship__c = 'Customer'; list<Policy__c> ActivePolicy = [select Id,Policy_Status__c from Policy__c where Policy_Status__c ='Active' and Company_Name__c =:Trigger.new[0].Id limit 1]; //Start of condition 3 if(!ActivePolicy.isEmpty()){ Trigger.new[0].Relationship_Type__c = 'Current'; } //END of if 3 //Start of condition4 1 else{ Date temp = System.today()+180; list<Policy__c> NonActivePolicy = [select Id,Policy_Status__c,Policy_Expiration_Date__c from Policy__c where Company_Name__c =:Trigger.new[0].Id and Policy_Expiration_Date__c >:temp limit 1]; if(!NonActivePolicy.isEmpty()){ Trigger.new[0].Relationship_Type__c = 'Current'; } else{ list<Submission__c> subBondType = [SELECT Id,Submission_Status__c,Policy_Status__c FROM Submission__c where Account_Name__c =:Trigger.new[0].Id and Submission_Status__c ='Bound' limit 1]; //start of condition7 5 if(!subBondType.isEmpty()){ Trigger.new[0].Company_Relationship__c = 'Customer'; if(subBondType[0].Policy_Status__c == 'Active') { Trigger.new[0].Relationship_Type__c = 'Current'; } else { Trigger.new[0].Relationship_Type__c = 'Former'; }} else{ Trigger.new[0].Relationship_Type__c ='Former'; } //end of if 5 // Start of condition8 3 } } //End of else 1 } //end of if 2 //Start of condition5 2 else{ list<Submission__c> subType = [SELECT Id,Submission_Status__c,Policy_Status__c FROM Submission__c where Account_Name__c =:Trigger.new[0].Id limit 1]; //start of condition6 4 if(!subType.isEmpty()){ list<Submission__c> subBondType = [SELECT Id,Submission_Status__c,Policy_Status__c FROM Submission__c where Account_Name__c =:Trigger.new[0].Id and Submission_Status__c ='Bound' limit 1]; //start of condition7 5 if(!subBondType.isEmpty()){ Trigger.new[0].Company_Relationship__c = 'Customer'; if(subBondType[0].Policy_Status__c == 'Active') Trigger.new[0].Relationship_Type__c = 'Current'; else Trigger.new[0].Relationship_Type__c = 'Former'; } //end of if 5 // Start of condition8 3 else { Trigger.new[0].Company_Relationship__c = 'Prospect'; Trigger.new[0].Relationship_Type__c = 'Activity'; } //END of else 3 } //end of if 4 // START of condition9 4 else { System.debug('In last if loop'); if(Trigger.new[0].Direct_Markets_Customer__c==True || Trigger.new[0].Z_Programs_Customer__c ==True) { Trigger.new[0].Company_Relationship__c = 'Programs'; } else{ Trigger.new[0].Company_Relationship__c = 'Prospect'; Trigger.new[0].Relationship_Type__c = 'No Activity'; } } // End of else 4 } //END of else 2 } //END of if 1 }
i tried using the Asynchronous class and it was working fine.I heard about there is some problem with future calls the dialy limit what is that can anybody explain me that.
All Answers
i tried using the Asynchronous class and it was working fine.I heard about there is some problem with future calls the dialy limit what is that can anybody explain me that.
got it its 200 method calls per 24 hrs.