我在这里遇到一个相当特殊的问题。我们有一个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,而且我不必等待一整天来查看我的代码是否有效?有什么方法可以“欺骗”系统,让我们认为已经过了一天?我尝试更改系统时间并重新启动服务器和所有内容,但它对我不起作用。
答案 0 :(得分:2)
更改系统时间应该有效,但您必须启动启动工作流程的计时器作业。在时间更改后不要重新启动服务器。
一个警告是,SharePoint真的不喜欢回到过去。在“未来”中创建的任何文档都会出现问题。因此,请记住在回滚到“现在”时可以删除的新网站中进行测试。