我在这里面临一个相当特殊的问题。我们有一个 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 天?我尝试更改系统时间并重新启动服务器和所有内容,但它对我不起作用。