kwood-pluscon
6/6/2019 - 5:01 PM

Schedulable Apex Batch Boilerplate

Schedulable Apex Batch Boilerplate

global class ExampleSchedulableBatch implements Database.Batchable<SObject>, Database.Stateful, Schedulable {

    global Integer recordsProcessed = 0;

    global Database.QueryLocator start(Database.BatchableContext bc) {

    }

    global void execute(Database.BatchableContext bc, List<IKA_Sub_Group_Plan__c> scope) {

    }

    global void finish(Database.BatchableContext bc) {
        System.debug(recordsProcessed + ' records processed!');

        if (recordsProcessed > 0) {
            // Dispatch debugging email
            String address = 'example@example.com';
            if (address.length() > 0) {
                String Message = '';
                
                List<String> toAddresses = new List<String>();
                toAddresses.add(address);

                Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
                mail.setToAddresses(toAddresses);
                mail.setSenderDisplayName('');
                mail.setSubject('');
                mail.setHtmlBody(Message);

                Messaging.sendEmail(new Messaging.SingleEmailMessage[]{
                        mail
                });
            }
        }
    }


    global void execute(SchedulableContext param1) {
        ExampleSchedulableBatch b = new ExampleSchedulableBatch();
        Database.executeBatch(b);
    }

}