Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Apex Scheduler
To invoke Apex classes to run at specific times we use Apex Scheduler
Steps to implement Schedulable Apex
1.
E.g.:
SchedulableContext object is used to keep track of the scheduled job once it's scheduled.
The SchedulableContext method getTriggerId returns the Id of the CronTrigger object associated with
this scheduled job as a string. Use this method to track the progress of the scheduled job.
2.
The System.Schedule method takes three arguments: a name for the job, an expression
used to represent the time and date the job is scheduled to run, and the name of the class.
This expression has the following syntax:
Seconds Minutes Hours Day_of_month Month Day_of_week optional_year
The following are the valid values for the above expression:
Name
Values
Seconds
Minutes
Hours
Day_of_month
Month
Special Characters
059
059
023
131
112 or the following:
None
None
,-*/
,- * ? / L W
,-*/
17 or the following:
,-*?/L#
optional_year
null or 19702099
,-*/
- Specifies a range. For example, use JAN-MAR to specify more than one month.
* Specifies all values. For example, if Month is specified as *, the job is scheduled for
every
month.
? Specifies no specific value. This is only available for Day_of_month and
Day_of_week, and
is generally used when specifying a value for one and not the other.
/ Specifies increments. The number before the slash specifies when the intervals
should
begin, and the number after the slash is the interval amount. For example,
if you specify
1/5 for Day_of_month, the Apex class runs every fifth day of the month,
starting on the
first of the month.
L Specifies the end of a range (last). This is only available for Day_of_month and
Day_of_week.When used withDay of month, L always means the last day of
the month,
such as January 31, February 28 for leap years, and so on.When used with
Day_of_week
by itself, it always means 7 or SAT.When used with a Day_of_week value, it
means the
last of that type of day in the month. For example, if you specify 2L, you
are specifying
the last Monday of the month. Do not use a range of values with L as the
results may be
unexpected.
W Specifies the nearest weekday (Monday-Friday) of the given day. This is only
available for
Day_of_month. For example, if you specify 20W, and the 20th is a
Saturday, the class
runs on the 19th. If you specify 1W, and the first is aSaturday, the class
does not run in
the previous month, but on the third, which is the following Monday.
# Specifies the nth day of the month, in the format weekday#day_of_month. This
is only
available for Day_of_week. The number before the # specifies weekday
(SUN-SAT). The
number after the # specifies the day of the month. Forexample, specifying
2#2 means the
class runs on the second Monday of every month.
The following are some examples of how to use the expression.
Expression Description
0 0 13 * * ?
Class runs every day at 1 P.M.
0 0 22 ? * 6L
Class runs the last Friday of every month at 10 P.M.
0 0 10 ? * MON-FRI
Class runs Monday through Friday at 10 A.M.
0 0 20 * * ? 2010
Class runs every day at 8 P.M. during the year 2010.
3. Create a Test class and Check if it is working properly or not
4. To check whether the job is Scheduled or not GOTO SetupAdministration
Setup Monitoring Scheduled Jobs
You can find all the Scheduled jobs here and there start and next run details.
//For Reference check salesforce_apex_language_reference_18.0.pdf Apex
Scheduler
Anonymous Block
An anonymous block is an Apex script that does not get stored in the metadata, but that can
be compiled and executed.
Compilation and Execution can be done using the Following:
1. System Log console
2. Force.com IDE
3. The executeAnonymous Force.comWeb Services API call:
ExecuteAnonymousResult executeAnonymous(String code)
Note the following about the content of an anonymous block (for executeAnonymous, the
code String):
Can include user-defined methods and exceptions.
User-defined methods cannot include the keyword static.
You do not have to manually commit any database changes.
If your Apex script completes successfully, any database changes are automatically
committed. If your
Apex script does not complete successfully, any changes made to the database are rolled
back.
Unlike classes and triggers, anonymous blocks execute as the current user and can fail to
compile if the
script violates the user's object- and field-level permissions.
Do not have a scope other than local. For example, though it is legal to use the global
access modifier,
it has no meaning. The scope of the method is limited to the anonymous block.
executeanonymous() :
Syntax:
ExecuteAnonymousResult[] = binding.executeanonymous(string apexcode);
The executeanonymous() call returns information about whether or not the compile and run
of the code was successful.
The ExcuteAnonymousResult has the properties which tells us that if there is a compilation
error then at which column number, line and what type of exception has occurred. If Success
then it results true.
1.
update loc;
oppExistInCw = true;
return oppExistInCw;
}else{
return oppExistInCw;
}
}
}
2. Once Webservice class has been created then goto ExecuteAnonymous block
3.
Once it is successful then the changes will be committed as per your code.