function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
NYCMeghanNYCMeghan 

Code Help on a Wonky Trigger

So I hate doing this but I have no developer help in house.  I have a trigger that is supposed to take the Closed amount off of the RevenueForecast and populate a field on a Custom Object with the Closed value.  I have used this trigger to do the same with the Quota value and it works - but for some reason when I try to amend it to populate the Closed value I get an error message:
 

Error: Compile Error: Variable does not exist: OwnerId at line 24 column 21

 

 

 

 

trigger updateClosed on QuotaManagement__c (before insert, before update) {

set<Id> ownerIds = new Set<Id>();

for(QuotaManagement__c qm : Trigger.new) {
ownerIds.add(qm.User__c);
}

List<Period> listOfPeriods = [SELECT Id, Number FROM Period where startDate = THIS_YEAR and endDate = THIS_YEAR and type = 'Month'];

Map<Integer, Id> periodIds = new Map<Integer, Id>(); for(Period p : listOfPeriods) {
periodIds.put(p.Number, p.Id);
}

System.debug('OwnerIds : ' + ownerIds);

List<Schema.RevenueForecast> rfs = [Select Closed, PeriodId, OwnerId from RevenueForeCast where OwnerId in :ownerIds and PeriodId in :periodIds.values() and Closed > 0];

Map<Id, double> closedvals = new Map<Id, double>(); Map<Id, RevenueForecast> ownerClosed = new Map<Id, RevenueForecast>();

for( RevenueForecast rf : rfs)
{
System.debug('Revenue forecast: ' + rf);
ownerClosed.put(rf.OwnerId, rf);
closedvals.put(rf.periodId, rf.Closed); } System.debug('Owner map: ' + ownerClosed); System.debug('Closed map: ' + closedvals);

RevenueForecast revforcast = new RevenueForecast();

for(QuotaManagement__c qm1 : Trigger.new) {
revforcast = ownerClosed.get(qm1.OwnerId);

qm1.January_Closed_Business__c = closedvals.get(periodIds.get(1));
qm1.February_Closed_Business__c = closedvals.get(periodIds.get(2));
qm1.March_Closed_Business__c = closedvals.get(periodIds.get(3));
qm1.April_Closed_Business__c = closedvals.get(periodIds.get(4));
qm1.May_Closed_Business__c = closedvals.get(periodIds.get(5));
qm1.June_Closed_Business__c = closedvals.get(periodIds.get(6));
qm1.July_Closed_Business__c = closedvals.get(periodIds.get(7));
qm1.August_Closed_Business__c = closedvals.get(periodIds.get(8));
qm1.September_Closed_Business__c = closedvals.get(periodIds.get(9));
qm1.October_Closed_Business__c = closedvals.get(periodIds.get(10));
qm1.November_Closed_Business__c = closedvals.get(periodIds.get(11));
qm1.December_Closed_Business__c = closedvals.get(periodIds.get(12));


}
}

 

 

Best Answer chosen by Admin (Salesforce Developers) 
NYCMeghanNYCMeghan
Turns out I had a naming conflict with the class on one of my visualforce controllers.