Revision: 31601
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at September 9, 2010 10:37 by abhinavguptas
Initial Code
global class IterableAggregator implements Database.Batchable<AggregateResult> { global Iterable<AggregateResult> start(Database.batchableContext info){ // just instantiate the new iterable here and return return new AggregateResultIterable(); } global void execute(Database.BatchableContext BC, List<Sobject> scope){ System.debug('SCOPE > ' + scope); } global void finish(Database.BatchableContext BC){ } global class AggregateResultIterable implements Iterable<AggregateResult> { global Iterator<AggregateResult> Iterator(){ return new AggregateResultIterator(); } } global class AggregateResultIterator implements Iterator<AggregateResult> { AggregateResult [] results {get;set;} Integer index {get; set;} global AggregateResultIterator() { index = 0; String query = 'Select Department, COUNT(Name) From Contact GROUP BY Department'; results = Database.query(query); } global boolean hasNext(){ return results != null && !results.isEmpty() && index < results.size(); } global AggregateResult next(){ return results[index++]; } } }
Initial URL
Initial Description
Initial Title
Batch Apex Database.Batchable AggregateResult via Iterable
Initial Tags
Initial Language
C#