De afgelopen weken ben ik weer veel met NINTEX Wokflow 2010 bezig geweest. De laatste keer dat ik een workflow heb ingericht was met behulp van een zogenaamde state machine workflow. Deze methode om workflows te creëren is zeer interessant maar behoeft wel wat extra uitleg.
Wat is een state machine?
Een state machine is een onderdeel van Microsoft .NET Framework 4.0. Hierdoor heeft NINTEX deze actie ook mogelijk gemaakt in NINTEX Workflow 2007 en de 2010 versie. Aan de hand van deze ‘state machine’ acties kunnen er binnen de workflow vele verschillende statussen worden gedefinieerd. Een state machine heeft altijd twee of meer statussen, en een van deze statussen is actief tijdens de uitvoer van de state machine. Het gebruik van een ‘state machine’ actie is zeer handig indien er veel tussen statussen gewisseld moet worden.
Zoals gezegd kan een state machine workflow handig zijn voor verschillende doeleinden. hierbij zijn verschillende voorbeelden te geven:
- Offerte proces, waarbij de offerte sequentieel moet worden goedgekeurd door meerdere personen;
- Beoordeling van een item of aanvraag waarbij er meerdere uitkomsten zijn bij de beoordeling;
Het maken van een State Machine workflow is binnen NINTEX Workflow heel eenvoudig. Door de workflow actie ‘state machine’ (uit de categorie Logic and flow) op de juiste plaats in de workflow designer te slepen, wordt er een state machine aangemaakt. De volgende stap is het aanmaken van alle benodigde ‘states’. Binnen deze ‘states’ worden dan de verschillende acties helemaal ingericht. Zo kunnen er onder andere berichten verzonden worden, kan CRM geüpdate worden en kan het lijstitem of bestand geüpdate worden.
Op NINTEX Connect is een voorbeeld van een State Machine workflow uitgewerkt. De beschrijving is gemaakt voor SharePoint 2007 met NINTEX Workflow 2007. Deze beschrijving is ook zeer goed te gebruiken voor SharePoint 2010 en NINTEX Workflow 2010.
Safe loop mechanisme
Tijdens het inrichten van de laatste workflow kreeg ik de vraag waarom de gebruikers zo lang moeten wachten, immers men verwachte dat het item direct werd geüpdate. Het probleem wat men hier tegen komt is het safe loop mechanisme. Dit mechanisme zorgt ervoor dat er 5 minuten gewacht wordt wanneer er gewisseld moet worden van ‘state’. Dit heeft NINTEX gedaan om te voorkomen dat een oneindige loop alle resources opneemt van de SharePoint server. Indien dit gebeurt zal SharePoint niet meer werken…
Het is mogelijk om het safe loop mechanisme terug te brengen naar 1 minuut. Persoonlijk zou ik dit niet adviseren omdat je dan te weinig tijd zou hebben om de workflow te stoppen indien een oneindige loop gecreëerd is. Ook NINTEX adviseert om het safe loop mechanisme nooit lager te zetten dan 5 minuten. Een en ander is door NINTEX kort uiteengezet als antwoord op een vraag over dit mechanisme, klik hier voor de link.
Oneffenheidje
Aan het begin van het maken van een state machine workflow definieer je alle benodigde statussen. Tijdens het configureren van de state machine merkte ik dat ik de verkeerde statussen had gebruikt en dat daardoor de volgorde raar werd weergegeven. Ik besloot de state’s te hernoemen. Wat me opviel bij het uitvoeren van de worfklow was dat de aangepaste namen keurig werden verwerkt in de flow. Maar bij de workflow actie ‘change state’ wordt de naam van de state opgenomen in het onderste label veld. Dit veld wordt niet automatisch aangepast als de namen van de states worden aangepast. Dit leidde in eerste instantie tot verwarring bij mij en de gebruikers.
Bovenstaande is gemeld bij NINTEX en zal zeer waarschijnlijk niet worden opgelost in de volgende release (de nieuwe release met bugfixes wordt op zeer korte termijn verwacht). In de release hierna wordt bovenstaande oneffenheid zeer waarschijnlijk wel meegenomen.