About

Edit photo

Saturday, March 18, 2017

Scheduling Jobs Simple examples


Example1:

Create a task for the opportunity owners who's opportunity is not closed even close date cross the close date.

Note: Schedule and Batch classes always should be Global.

global class RemindOpptyOwners implements Schedulable {

    global void execute(SchedulableContext ctx) {
        List<Opportunity> opptys = [SELECT Id, Name, OwnerId, CloseDate 
            FROM Opportunity 
            WHERE IsClosed = False AND 
            CloseDate < TODAY];
        // Create a task for each opportunity in the list
        TaskUtils.remindOwners(opptys);
    }
    
}
//Code from Salesforce.com - Trailhead


NoteTaskUtils.remindOwners(opptys); is creates a task for the owners.

Now, Autorun the jobs for every Monday at 2 am.

Schedule jobs run as -> Seconds Minutes Hours DaysOfMonth Month DayOfWeek Year

There are also some special characters you can use:

, used to delimit values [hours, day of month, month, day of week, year]
– used to specify a range [hours, day of month, month, day of week, year]
* used to specify all values [hours, day of month, month, day of week, year]
? used to specify no specific value [day of month, day of week]
/ used to specify increments [hours, day of month, month, day of week, year]
L used to specify the end of a range [day of month, day of week]
W used to specify the nearest weekday [day of month]

# used to specify the nth day of the month [day of week]

RemindOpptyOwners reminder = new RemindOpptyOwners();
// Seconds Minutes Hours Day_of_month Month Day_of_week optional_year
String sch = '0 30 8 10 2 ?';
String jobID = System.schedule('Remind Opp Owners', sch, reminder);


Testing:
http://blog.deadlypenguin.com/blog/2012/05/26/scheduled-actions-in-salesforce-with-apex/

I'll write my own test, Coming soon with real time examples.

0 comments:

Post a Comment