我们有一个sharepoint列表,很少有设计师工作流程与之关联。我们对现有工作流程进行了一些更改但未发布,因为它可能会影响我们为许多列表项重新分配权限和状态的当前列表项。在这种情况下,我们希望停止Sharepoint列表中特定列表项仍在运行或正在进行的工作流。完成deployemnt后(发布工作流的新版本),我们需要重新启动我们停止的列表项的工作流。
我相信通过Powershell脚本可以实现这一点。
如果您有任何想法,请发布我们的建议和解决方案。
谢谢, 彼得
答案 0 :(得分:0)
#Site URL
$web = Get-SPWeb "http://urlforsite.com";
$web.AllowUnsafeUpdates = $true;
#List Name
$list = $web.Lists["ListName"];
# Iterate through all Items in List and all Workflows on Items.
foreach ($item in $list.Items) {
foreach ($wf in $item.Workflows) {
#Cancel Workflows
[Microsoft.SharePoint.Workflow.SPWorkflowManager]::CancelWorkflow($wf);
}
}
$web.Dispose();

要重新启动任何工作流程,您可以将个人视图列作为是/否选择。在现有工作流上,对列进行if语句更改然后更改回来。