1

我在这里面临一个相当特殊的问题。我们有一个 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,但这意味着要等待一整天才能查看代码是否有效。

有什么方法可以测试我的场景,这样我就可以将自动清理天数设置为 1,而且我不必等待一整天来查看我的代码是否有效?有什么办法可以“愚弄”系统认为已经过去了 1 天?我尝试更改系统时间并重新启动服务器和所有内容,但它对我不起作用。

4

1 回答 1

2

更改系统时间应该可以工作,但您将不得不启动启动工作流程的计时器作业。时间更改后不要重新启动服务器。

一个警告是,SharePoint 真的不喜欢时光倒流。在“未来”创建的任何文档都会出现问题。所以记得在回滚到“现在”时可以删除的新网站进行测试。

于 2008-12-01T21:05:42.697 回答