测试工作流历史Autocleanup

时间:2008-12-01 09:01:58

标签: sharepoint sharepoint-2007 moss

我在这里遇到一个相当特殊的问题。我们有一个OOTB批准工作流程,它将所有工作流程历史记录记录到工作流程历史记录列表中。此列表每60天清除一次。为了增加保留工作流历史记录的时间段,我搜索了一下,发现我已运行此代码:

使用(SPSite wfSite = new 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,而且我不必等待一整天来查看我的代码是否有效?有什么方法可以“欺骗”系统,让我们认为已经过了一天?我尝试更改系统时间并重新启动服务器和所有内容,但它对我不起作用。

1 个答案:

答案 0 :(得分:2)

更改系统时间应该有效,但您必须启动启动工作流程的计时器作业。在时间更改后不要重新启动服务器。

一个警告是,SharePoint真的不喜欢回到过去。在“未来”中创建的任何文档都会出现问题。因此,请记住在回滚到“现在”时可以删除的新网站中进行测试。