You need to sign in to do that
Don't have an account?
Keith Stephens 18
Trigger get count
Hello All,
I have the follwoing code and I want to return the count of records.
we are not hiting our soql limtis.
Thansk,
K
I have the follwoing code and I want to return the count of records.
trigger Pupdate on Procedure__c (before update, before insert) { Map<Id,AggregateResult> cprCnt = new Map<id,AggregateResult>([SELECT Count(id) maxRates FROM Center_Procedure_Rate__c group by CPT_Code__c, Center__c]); if (Trigger.isInsert || (Trigger.isUpdate && proc.Amount_To_Pay__c == NULL && proc.Procedure_Cost__c == NULL) || (Trigger.isUpdate && (proc.Procedure_Status__c != 'OK to Pay' && proc.Procedure_Status__c != 'Paid' && (proc.Amount_To_Pay__c != NULL && proc.Procedure_Cost__c != NULL)))) { // get count of Center Procedure Rates that match current procedure //centerRateCount = // [SELECT COUNT(Id) maxRates FROM Center_Procedure_Rate__c // WHERE CPT_Code__c = :proc.CPT_Code__c AND Center__c = :proc.Center__c]; //maxCtrRates = centerRateCount[0].get('maxRates') == null ? 0 : (Integer)centerRateCount[0].get('maxRates'); maxCtrRates = cprCnt.get(proc.Center__c, proc.CPT_Code__c); system.debug(maxCtrRates); } }In the code you can see I am doing it through Soql, but I need to have this bulkified.
we are not hiting our soql limtis.
Thansk,
K
Map<String,Integer> map = new Map<String,Integer>();
loop through Center_Procedure_Rate__c and add combination of CPT_Code__c, Center__c as string and count as integer.
map.add(CPT_Code__c+Center__c, count(Id)) ;
&
Line 14 get from the map like
map.get(proc.CPT_Code__c+proc.Center__c);
All Answers
Map<String,Integer> map = new Map<String,Integer>();
loop through Center_Procedure_Rate__c and add combination of CPT_Code__c, Center__c as string and count as integer.
map.add(CPT_Code__c+Center__c, count(Id)) ;
&
Line 14 get from the map like
map.get(proc.CPT_Code__c+proc.Center__c);
That is exacly what I did a few days ago, and it works great, but thanks.