在Salesforce中创建Schedule的Job去定时触发对应的Class
在Salesforce中也存在着Job的概念,当然了我们可以创建Schedule的Job去定时触发对应的Class,来完成我们所需要定时处理的功能,比如:定时同步数据。
具体处理步骤如下所示:
1):创建的Class需要继承Schedulable接口,并且实现对应的execute方法,在execute的方法中可以完成我们自己的代码逻辑
global class SyncStoreController implements Schedulable { //call the web service to get the store info global void execute(SchedulableContext SC) { system.debug('---------001 HaHaHa. I am sync store controller.'); // to do - complete your logic } }
2):到Salesforce中的Apex Classes中找到Schedule Apex按钮
3):点击上图中的Schedule Apex按钮,在显示的界面中填写必要的信息
【Job Name以及Apex Class,点击搜索框,可以将有权限访问的并且继承了Schedulable接口的Class都Filter出来】
4):设置Schedule Apex Execution,可以看到在界面上所设置的最小的执行单位是天,如果需要设置更小的执行单位,那么需要写执行代码去处理
【详情请看:https://developer.salesforce.com/forums/ForumsMain?id=906F00000008xTBIAY 和 http://www.linkedin.com/groups/How-schedule-batch-class-after-3774731.S.88387420 】
5):在如下路径中去查看Schedule的Jobs 【Setup --> Jobs --> Scheduled Jobs】
6):在如下路径中去查看Apex的Jobs【Setup --> Jobs --> Apex Jobs】
若要在Schedule Job中去call web service,那么需要在对应的function上添加@future(callout=true)这样的标识。
要不然会提示这样的错误:System.CalloutException: Callout from scheduled Apex not supported.
更多详细信息请看如下链接: http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_scheduler.htm