You need to sign in to do that
Don't have an account?
subodh chaturvedi 17
Public static Void territoryFinancialsDj(List<Territory_Plan__c> tpe){
Set<Id> ownerIds =New set<Id>();
List<Event> evtList = new List<Event>();
List<Territory_Plan__c > ObjectRec = new List<Territory_Plan__c >();
List<Territory_Plan__c > tpList = new List<Territory_Plan__c >();
List<Territory_Plan__c > ObjectBList = new List<Territory_Plan__c >();
List<Opportunity> oppoList = new List<Opportunity>();
For(Territory_Plan__c t:tpe){
ownerIds.add(t.Account_Executive__c);
}
Map<Id, Opportunity> oppoMap = new Map<Id, Opportunity>([SELECT Id, StageName, ownerId FROM Opportunity WHERE OwnerId IN : ownerIds]);
evtList = [SELECT Id, WhatId, Status__c, Type, ownerId FROM Event WHERE Status__c='Completed' AND Type='On-Site at PSCU' AND ownerID IN:ownerIds ];
for(Territory_Plan__c tp:tpe){
for(Event e: evtList){
if(tp.Account_Executive__c==e.ownerId && oppoMap.containsKey(e.WhatId) && tp.Account_Executive__c==oppoMap.get(e.WhatId).ownerId){
oppoList.add(oppoMap.get(e.WhatId));
}
}
tp.of_Onsite_at_PSCU_YTD__c = oppoList.size();
tpList.add(tp);
}
}
System.LimitException: Too many SOQL queries: 101 :- this Method i am calling in trigger:- please help me where i am wrong
Public static Void territoryFinancialsDj(List<Territory_Plan__c> tpe){
Set<Id> ownerIds =New set<Id>();
List<Event> evtList = new List<Event>();
List<Territory_Plan__c > ObjectRec = new List<Territory_Plan__c >();
List<Territory_Plan__c > tpList = new List<Territory_Plan__c >();
List<Territory_Plan__c > ObjectBList = new List<Territory_Plan__c >();
List<Opportunity> oppoList = new List<Opportunity>();
For(Territory_Plan__c t:tpe){
ownerIds.add(t.Account_Executive__c);
}
Map<Id, Opportunity> oppoMap = new Map<Id, Opportunity>([SELECT Id, StageName, ownerId FROM Opportunity WHERE OwnerId IN : ownerIds]);
evtList = [SELECT Id, WhatId, Status__c, Type, ownerId FROM Event WHERE Status__c='Completed' AND Type='On-Site at PSCU' AND ownerID IN:ownerIds ];
for(Territory_Plan__c tp:tpe){
for(Event e: evtList){
if(tp.Account_Executive__c==e.ownerId && oppoMap.containsKey(e.WhatId) && tp.Account_Executive__c==oppoMap.get(e.WhatId).ownerId){
oppoList.add(oppoMap.get(e.WhatId));
}
}
tp.of_Onsite_at_PSCU_YTD__c = oppoList.size();
tpList.add(tp);
}
}
You above code look good to me. Please check debug log and check your trigger is becoming recursive any where ? if yes then you need to stop that with the help of Static variable
Could you share your trigger code.
Guys this is my trigger Code
trigger TerritoryPlanDetails on Territory_Plan__c (Before Insert,After Insert,After Update,Before Update) {
if(Trigger.isBefore) {
if(trigger.IsInsert){
territoryPlanDetailsUpdate.territoryFinancialsDj(trigger.new);
}
}
if(Trigger.isBefore) {
if(trigger.IsUpdate){
territoryPlanDetailsUpdate.territoryFinancialsDj(trigger.new);
}
}