2012-02-03 84 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