#powershell #sharepoint-2013 #nintex-workflow
#powershell #sharepoint-2013 #nintex-рабочий процесс
Вопрос:
Я запускаю сценарий PowerShell на SP2013 OnPrem, и мы используем версию Nintex, которая основана на механизме рабочего процесса SP2010. Этот рабочий процесс запускает рабочий процесс списка, который предназначен для отмены запущенного рабочего процесса и обновления таблицы в SQL. Ошибка, которую я получаю (в названии этого поста), встречается в большинстве из них. Я видел несколько сообщений на эту тему, но не смог обойти это. Из 3 параметров, которые я передаю, единственным параметром, который может быть равен нулю, являются данные ассоциации, которые показывают следующее при записи на хост:
lt;Datagt;lt;stxtSPListName /gt;lt;stxtWFTypeID /gt;lt;stxtWebRequestResult /gt;lt;/Datagt;
Считается ли это нулем, поскольку в тегах нет данных? Что странно, так это то, что время от времени он фактически запускает рабочий процесс отмены, и, похоже, он находится на первом элементе, но не на следующих.
Код, который я использую:
Start-SPAssignment -global; $url = "https://oursite.com"; $workflowname = "Cancel" $listname = "Invoices" $web = Get-SPWeb $url; $web.AllowUnsafeUpdates = $true; $site = $web.Site; $list = $web.Lists[$listname]; $workflowManager = $site.WorkFlowManager; $listitemid = 325,125,251,167 try{ $association = $list.WorkFlowAssociations | Where-Object {$_.Name -eq $workflowname}; $association.AllowAsyncManualStart = $true $association.AllowManual = $true $list.WorkflowAssociations.Update($association) } catch{write-host $_.exception.Message -foregroundcolor Red;} ForEach ($item in $list.Items){ if($listitemid -contains $item.id){ write-host "Starting $($item.id)" -foregroundcolor Yellow; try{ $data = $association.AssociationData $workflowManager.StartWorkFlow($item,$association,$data); } catch{write-host $_.exception.Message -foregroundcolor Red;} } } Stop-SPAssignment -global; $web.dispose()
Я в тупике!