2008-12-01 92 views
1

我在這裏遇到一個相當奇怪的問題。我們有一個OOTB批准工作流程,它將所有工作流程歷史記錄記錄到工作流程歷史記錄列表中。該清單每60天清除一次。爲了增加此時間段,其工作流歷史記錄被保留,我用Google搜索了一圈,發現我已運行這段代碼:測試工作流程歷史Autocleanup

使用(SPSite的wfSite =新的SPSite(SITEURL)) {

using (SPWeb wfWeb = wfSite.OpenWeb(webName)) 

{ 

    SPList wfList = wfWeb.Lists[listName]; 

    SPWorkflowAssociation _wfAssociation = null; 

    foreach (SPWorkflowAssociation a in wfList.WorkflowAssociations) 

    { 

     if("approval 1" == wfAssociationName.ToLowerInvariant()) 

     { 

      a.AutoCleanupDays = newCleanupDays; 

      _wfAssociation = a; 

      assoCounter++; 

     } 

     else 

     { 

      _wfAssociation = a; 

     } 

    } 

    wfList.UpdateWorkflowAssociation(_wfAssociation); 

} 

}

該代碼工作正常,在它不會拋出任何例外。到現在爲止還挺好。但我現在的問題是我需要測試我的代碼是否工作。所以我將newCleanupDays變量設置爲0.但是我發現新的工作流活動仍然記錄在工作流歷史記錄列表中。我可以將變量設置爲1,但這意味着要等待一整天才能看到代碼是否工作。

是否有任何方法可以測試我的方案,以便可以將autocleanup天設置爲1 ,我不需要等一整天,看看我的代碼是否有效?有什麼辦法可以「愚弄」系統,認爲已經過去了一天?我嘗試改變系統時間並重新啓動服務器和所有內容,但它對我無效。

回答

2

更改系統時間應該可以工作,但是您將不得不啓動啓動工作流程的計時器作業。時間改變後不要重新啓動服務器。

一個警告是,SharePoint真的不喜歡及時返回。任何在「未來」中創建的文檔都會有問題。所以記得在一個新的網站上測試,當你回滾到「現在」時可以刪除它。

+0

感謝您的回答,我該如何啓動計時器作業?將「STSADM -o execadmsvcjobs」做這項工作嗎? – ashwnacharya 2008-12-02 04:09:21