2

powershell を使用して 2010 ワークフローを操作する方法に関するガイドがいくつかあります。2013 のワークフローで同じことを行う方法を教えてもらえますか? それらは、 内にリストされなくなりまし$list.WorkFlowAssociationsた。

4

2 に答える 2

4
$siteURL = "URL"
$web = Get-SPWeb $siteURL
$wfm = New-object Microsoft.SharePoint.WorkflowServices.WorkflowServicesManager($web)
$sub = $wfm.GetWorkflowSubscriptionService()
$subscriptions = $sub.EnumerateSubscriptionsByList($list.ID)

$subscriptions 内には、関連するワークフローがあります。それが役に立てば幸い

于 2013-09-30T20:46:10.130 に答える
4

このMSDN ブログの投稿は、ほとんどの回答を示していますが、リスト内の項目ではなく、リストを繰り返し処理しようとしていました。以下は更新版です。

$sourceWebURL = '<URL>'
$sourceListName = '<List Name>'
$TargetWorkflow = '<Workflow Name>'
$spSourceWeb = Get-SPWeb $sourceWebURL
$spSourceList = $spSourceWeb.Lists[$sourceListName]
$items = $spSourceList.getItems()

#-- Getting a Workflow manager object to work with.
$wfm = New-object Microsoft.SharePoint.WorkflowServices.WorkflowServicesManager($spSourceweb)
#-- Getting the subscriptions
$sub = $wfm.GetWorkflowSubscriptionService()
#-- Getting the specific workflow within the list of subscriptions on the specific list. (SP2010 associated workflows basically)
$WF = $sub.EnumerateSubscriptionsByList($spSourcelist.ID) | Where-Object {$_.Name -eq "$TargetWorkflow"}
#-- Getting a Workflow instance in order to perform my commands.
$wfis=$wfm.GetWorkflowInstanceService()

Foreach($item in $items){
    #-- Creating the dictionary object I need to parse into StartWorkflow. This could be most other workflow commands.
    $object = New-Object 'system.collections.generic.dictionary[string,object]'
    $object.Add("WorkflowStart", "StartWorkflow");
    $wfis.StartWorkflowOnListItem($WF, $item.ID, $object)
}
于 2014-10-22T18:46:11.363 に答える