-->

среда, 22 июня 2016 г.

Запуск рабочего процесса с помощью PowerShell

Порой бывают случаи, когда у ряда элементов нужно запустить определенный РП.
Руками такой процесс может занять продолжительное время и как всегда на помощь приходит PowerShell

И так, в текущем примере я запустил Workflow у элемента с Id равным 731. Воспользовавшись u2u caml query builder можно построить запрос и запустить РП только у требуемых элементов
Сам скрипт

$web=Get-SPWeb http://site/sites/HR # заменить на требуемый адрес
$list=$web.Lists['Заявки']
cls

 $manager = $web.Site.WorkFlowManager
 $assoc = $list.WorkflowAssociations.GetAssociationByName("Согласование","ru-ru") # заменить первый параметр  на требуемое (название РП)
 $data = $assoc.AssociationData

$Query = New-Object Microsoft.SharePoint.SPQuery;
$Query.Folder = $List.RootFolder;
$camlQuery =   "
                    
                        
                        731
                    
               "
$Query.Query = $camlQuery;
$Query.RowLimit = 100;
$items = $List.GetItems($Query) 
$items.Count
foreach ($item in $items)
{
    $wf = $manager.StartWorkFlow($item,$assoc,$data,$true)
    $item['Title']   
}
  
$manager.Dispose()
$web.Dispose() 

как пользоваться:
заменить адрес сайта и название рабочего процесса.