SharePoint WORKFLOW 2013
Appel à la communauté SharePoint après avoir écumer le web et resté sans réponse:
Suite à une surcharge CPU à 99% en continue par le service "Microsoft.WorkFlow.ServiceHost", j'ai effectué les étapes de recherche suivantes:
* Execution de l'outil "Workflow Mananager Best practice analyser" pour vérifier la bonne installation/configuration du service de workflow, résultat: OK
* Vérification des workflows en cours d'éxecution via les "settings workflow" : je vois (pour mon workflow 2013 principal) "19 workfows en cours d'éxecution", mais aucun item n'est lié -apparement- à ces fils d'execution, du coup je ne peux pas les arrêter manuelement car je n'y pas accès
Usage de PowerShell avec les propriétés ".WorkflowAssociations" et ".RunningInstances" sur ma library: et là , je constate que mon script fonctionne parfaitement , sauf qu'il ne "ramenne" que les workflows 2010 !
* Edition du workflow 2013 collé à ma lib. : certains "stage" contiennent des "loop" qui attendent certaines valeures; même si ce workflow 2013 à été corrigé, les precedents version n'apparaissant pas du à v. 2013, d'ou ma question:
COMMENT SUPRIMER (.cancel) DES WORKFLOWS 2013 EN COURS D'EXECUTION non visible dans les items ?
HOW TO REMOVE "Workflows 2013 in Progress" when in sot visible into Items ?
et comment -via PowerShell- énumerer la liste des workflows 2013 en cours d'execution pour une bibliothèque ? sachant qu'on le fait très facilement pour des workflows 2010
Note Infra: 1 Serveur SQL 2012 (os: 2008 r2) sur lequel tourney le workflow manager + 1 Serveur SP 2013 (os: 2008 r2)
Merci d'avance et Bonne journée à tous
Pascal
ScrenShot - Get-WorkFlow - Workflow 2010 only :-(
MTS
Le code power shell:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42 #Exemple Pour arrêter un workflow en cours Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue $outputPath = "D:\BackupSP\resultat_lst_wf.txt" #Site URL $web = Get-SPWeb "http://mySharePoint2013.com"; Write-host $web #$web.AllowUnsafeUpdates = $true; #List Name $list = $web.Lists["Purchase Order Request"]; Write-Host $list -ForegroundColor Red # Iterate through all Items in List and all Workflows on Items. foreach ($item in $list.Items) { if($item.Workflows.Count -gt 0) { Write-Host " " $ligne2 = "[" + $item.ID + "] " + $item.Name + " intances workflow of item: " + $item.Workflows.Count Write-Host $ligne2 -ForegroundColor Yellow Add-Content -Path $outputPath -Value " " ADd-content -Path $outputPath -Value $ligne2 #"["$item.ID"]"$item.Name " Nombre d'instances de workflow pour cet item: ("$item.Workflows.Count")" } foreach ($wf in $item.Workflows) { #Cancel Workflows # [Microsoft.SharePoint.Workflow.SPWorkflowManager]::CancelWorkflow($wf); if($wf.InternalState -eq "Running") { $ligne3 = " @'"+$wf.ParentAssociation.Name + "' /Status:" + $wf.InternalState + " /Completed?:"+$wf.IsCompleted + " /Running Inst:" + $wf.ParentAssociation.RunningInstances #$wf.IsLocked + " /LckItem:"+$wf.ParentAssociation.LockItem Write-Host $ligne3 -ForegroundColor Green Add-Content -Path $outputPath -Value $ligne3 } } } $web.Dispose();
Partager