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

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

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
$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 =   "<where>
                    <eq>
                        <fieldref name="ID">
                        <value type="Counter">731</value>
                    </fieldref></eq>
               </where>"
$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()

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

Комментариев нет:

Отправить комментарий