Nintex Workflow Manager: angehaltene Workflows finden

Angehaltene-Workflows-finden

Veröffentlicht:
Aktualisiert: 27. Juni 2021

Nintex Workflows im «Office 365»-Umfeld (SharePoint Online) nutzen als Engine den sogenannten «Workflow Manager». Diese Engine hat, im Unterschied zur «Workflow Foundation»-Engine, die Unart, dass bei Fehlern im Workflow keine Benachrichtigung versendet wird. Somit ist es leider ziemlich schwierig, fehlgeschlagene Workflows aufzuspüren und neu zu starten.

Workflow-Informationen
Workflow Informationen

Tomasz Poszytek, Nintex virtual Technical Evangelist aus Polen, hat einen Blogbeitrag verfasst, wie solche «angehaltene» Workflows per Microsoft Flow aufgespürt werden können.

Mit diesem Beitrag möchten wir zeigen, wie der Ansatz von Tomasz weiterverfolgt und anstatt Flow ein Nintex Workflow verwendet werden kann.

Grobe Lösungsskizze

Als erstes wird eine SharePoint-Liste («Workflowparameter») benötigt, in welcher die Listen- und Bibliotheken-IDs festgehalten werden, auf welchen Nintex Workflows laufen.

Anschliessend kann mittels Site-Workflow jedes Listenelement abgefragt werden, wobei alle Workflows im Zustand «2» zurückerhalten werden.

Wird ein angehaltener Workflow gefunden, versendet der Site-Workflow eine Nachricht, welche den Link zur Workflow-Status-Seite enthält.

Die Lösung im Detail

So könnte die «Workflowparameter»-Liste aussehen:

Workflowparameter
Workflowparameter

Im Site-Workflow schlagen wir als erstes den E-Mailempfänger nach:

Site-Workflow-E-Mailempfänger
Site-Workflow E-Mailempfänger

Anschliessend nutzen wir eine «State-Machine», wobei jeder «State» einer Liste entspricht, auf welcher Nintex Workflows laufen:

Start-Machine
Start-Machine

Innerhalb von «State 1» schlagen wir die Listen-ID aus «Workflowparameter» sowie alle Elemente der betroffenen Listen (in diesem Beispiel «Ferienanträge») nach:

Workflow Ferienanträge
Übersicht: Workflow Ferienanträge

Nun werden alle Elemente mittels «For Each» abgefragt, ob sich ein darauf laufender Workflow im Zustand «2» befindet.

For-Each
Übersicht: For-Each

varWebrequestAddress:

varWebrequestAddress
varWebrequestAddress

{Workflow Context:Current site URL} _api/SP.WorkflowServices.WorkflowInstanceService.Current/ EnumerateInstancesForListItem(listid='{Variable:varListID}‘, itemid='{Variable:varObjektID}‘)?$Filter=Status eq 2&$select=Id,FaultInfo,WorkflowSubscriptionId,InstanceCreated,LastUpdated

varRequestHeaders:

varRequestHeaders
varRequestHeaders

HTTP-Webdienst aufrufen:

HTTP-Webdienst-aufrufen
HTTP-Webdienst aufrufen

varResponseContentResult:

varResponseContentResult
varResponseContentResult

Count Items in a Dictionary:

Count-Items-in-a-Dictionary
Count Items in a Dictionary
varResponse
Übersicht: varResponse

varFaultInfo:

varFaultInfo
varFaultInfo

varFaultInfoTxt:

varFaultInfoTxt
varFaultInfoTxt

varFaultInfoTxt:

varFaultInfoTxt 2
varFaultInfoTxt

varURLWorkflowPage:

varURLWorkflowPage
varURLWorkflowPage
varEmailRecipient
Übersicht: varEmailRecipient
varEmailRecipient
varEmailRecipient

Die weiteren Zustände lauten:
0 = Note started
1 = Started
2 = Suspended
3 = Canceling
4 = Canceled
5 = Terminated
6 = Completed
7 = Not specified
8 = Invalid

Als letztes folgt der Übertrag auf den nächsten Zustand und die Abfrage beginnt von vorne:

neue-Abfrage
neue Abfrage

Referenzen

Beitrag teilen
Geschrieben von

Raphael Bachmann

Teamleiter Apps & Services und Nintex virtual Technical Evangelist

Profil anzeigen

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

IOZ_LOGO_weiss

Profis für M365-Intranets & digitale Arbeitsplätze, Power Apps, Power Automate Workflows, sowie Managementsysteme.

Angebote

Angebotsübersicht

Nach oben scrollen