2012-02-03 56 views
2

我创建了一个名为scheduledInsert的调度程序类。这个类的调度作业与下面的代码注册Salesforce系统预定作业未执行

public class TestInsertTaskScheduler 
{ 
    public static testMethod void testInsertTaskScheduler() 
    { 
    scheduledInsert i = new scheduledInsert(); 
    Datetime now = Datetime.now(); 
    System.debug ('Datetime'+now); 
    String sch = '0 1 * * * ?'; // scheduled to execute every minute 
    system.schedule('Insert Task S3', sch, i); 
    System.debug ('After schedule'); 
    } 
} 

排定类代码

global class scheduledInsert implements Schedulable 
{ 
    global void execute(SchedulableContext SC) 
    { 
    System.debug('scheduled insert'); 
    } 
} 

这项工作(插入任务S3)并没有在监控显示调度作业。

另外的工作完全不执行。

我在犯什么错误?

回答

4

我相当肯定,那是因为你使用的是testmethod。当您使用testmethod时,不会向Salesforce数据库提交任何内容;所以,这个作业不会出现在Scheduled Jobs部分。尝试删除testmethod关键字,再次运行它,看看它是否出现。

+0

谢谢, 让我怎么调用这是我目前写在测试方法中的代码?这是注册作业的代码。我试着将它写在另一个类中,并从测试方法中调用该函数。那没用(我确实感觉它是同样的东西)。唯一的另一种方式,我可以认为如果是从触发器调用函数。但我不想重新注册它。也触发不是很明显 问候 Sameer – user179056 2012-02-04 05:49:50

+0

我从触发器调用registerjob()。现在注册的作业正在显示器 - >预定作业下正确显示。然而,从触发器调用并不理想。有没有其他方法? – user179056 2012-02-04 08:56:52

+0

您无需从[触发](http://www.salesforce.com/us/developer/docs/apexcode/index_CSH.htm#apex_triggers.htm)中调用调度代码;您可以使用[Visualforce页面和Apex控制器](http://www.salesforce.com/us/developer/docs/pages/index_CSH.htm#pages_controller.htm)。或者您可以从Execute Anonymous(可在[Developer Console]中找到)(http://blogs.developerforce.com/developer-relations/2011/09/new-developer-console-in-winter-12.html)或[Force.com IDE](http://wiki.developerforce.com/page/Force.com_IDE_Installation))。 – 2012-02-06 13:38:41