You need to sign in to do that
Don't have an account?

Loop only updates one record
This is my first attempt at apex. Can anone help me understand why this loop only updates one record when it should be updating multiple?
global class Idea_Votes_Copy_to_Enhancement implements Schedulable{
global void execute(SchedulableContext ctx) {
List<SFDC_Component__c> enhList = new List <SFDC_Component__c>();
SFDC_Component__c ER = new SFDC_Component__c();
List<Idea> iList=[SELECT VoteTotal, Enhancement_Requirement_ID__c FROM Idea WHERE VoteTotal >0 AND Status !='Deployed' AND Enhancement_Requirement_ID__c != null];
for(idea i:IList){
ER.id = i.Enhancement_Requirement_ID__c;
ER.Vote_Count__c = i.VoteTotal;
enhList.add(ER);
}
Set<SFDC_Component__c> erSet = new Set<SFDC_Component__c>();
erSet.addAll(enhList);
enhList.clear();
enhList.addAll(erSet);
upsert enhList;
}
}
global class Idea_Votes_Copy_to_Enhancement implements Schedulable{
global void execute(SchedulableContext ctx) {
List<SFDC_Component__c> enhList = new List <SFDC_Component__c>();
SFDC_Component__c ER = new SFDC_Component__c();
List<Idea> iList=[SELECT VoteTotal, Enhancement_Requirement_ID__c FROM Idea WHERE VoteTotal >0 AND Status !='Deployed' AND Enhancement_Requirement_ID__c != null];
for(idea i:IList){
ER.id = i.Enhancement_Requirement_ID__c;
ER.Vote_Count__c = i.VoteTotal;
enhList.add(ER);
}
Set<SFDC_Component__c> erSet = new Set<SFDC_Component__c>();
erSet.addAll(enhList);
enhList.clear();
enhList.addAll(erSet);
upsert enhList;
}
}
SFDC_Component__c ER = new SFDC_Component__c();
Just above this line:
ER.id = i.Enhancement_Requirement_id__c;