今天在SharePoint 2013中发现了一个奇怪的现象,在一个列表"List Test"中运行着一个名字叫"Workflow Test"的工作流,我查了一下,在列表中,所有的item的工作流的状态只有两种,一个是空的,说明这个item上没有运行这个工作流,另一个是completed状态,并没有in progress的,但是在list的workflow settings里,却显示有8个in progress的工作流,于是我写了一个powershell的脚本来找出所有in progress 状态的item,看一下到底是哪儿显示错了。
脚本很简单,我的site的url是“http://server2013”, list名字是“List Test”, workflow的列名是“Workflow Test”:
$web = Get-SPWeb http://server2013
$list = $web.Lists["List Name"]
foreach($item in $list.Items)
{
if($item["Workflow Name"] -eq 2)
{
Write-Host $item.Title
}
}
在使用时,请把红色的部分替换为正确的名字。其中判断条件
if($item["Workflow Name"] -eq 2)
中的2表示 in progress。其他的状态值可以参考: 工作流状态值