Tillståndsdatorarbetsflöden
En tillståndsdator är ett välkänt paradigm för utveckling av program. Aktiviteten StateMachine , tillsammans med State, Transitionoch andra aktiviteter kan användas för att skapa tillståndsdatorarbetsflödesprogram. Det här avsnittet innehåller en översikt över hur du skapar tillståndsdatorarbetsflöden.
Översikt över tillståndsdatorarbetsflöde
Tillståndsdatorarbetsflöden ger ett modelleringsformat som du kan modellera arbetsflödet med på ett händelsedrivet sätt. En StateMachine aktivitet innehåller tillstånd och övergångar som utgör logiken för tillståndsdatorn och kan användas var som helst där en aktivitet kan användas. Det finns flera klasser i tillståndsdatorns körningstid:
För att skapa ett tillståndsdatorarbetsflöde läggs tillstånd till i en StateMachine aktivitet och övergångar används för att styra flödet mellan tillstånd. Följande skärmbild från steget Komma igång-självstudie: Skapa ett tillståndsmaskinarbetsflöde visar ett tillståndsdatorarbetsflöde med tre tillstånd och tre övergångar. Initiera Mål är det inledande tillståndet och representerar det första tillståndet i arbetsflödet. Detta anges av den rad som leder till den från startnoden. Det slutliga tillståndet i arbetsflödet heter FinalState och representerar den punkt där arbetsflödet har slutförts.
Ett tillståndsdatorarbetsflöde måste ha ett och endast ett initialt tillstånd och minst ett slutligt tillstånd. Varje tillstånd som inte är ett slutligt tillstånd måste ha minst en övergång. Följande avsnitt beskriver hur du skapar och konfigurerar tillstånd och övergångar.
Skapa och konfigurera tillstånd
A State representerar ett tillstånd där en tillståndsdator kan vara i. Om du vill lägga till en State i ett arbetsflöde drar du aktivitetsdesignern Tillstånd från avsnittet Tillståndsdator i verktygslådan och släpper den till en StateMachine aktivitet på Windows Workflow Designer-ytan.
Om du vill konfigurera ett tillstånd som initialt tillstånd högerklickar du på tillståndet och väljer Ange som ursprungligt tillstånd. Om det inte finns något aktuellt initialt tillstånd kan du dessutom ange det ursprungliga tillståndet genom att dra en rad från startnoden överst i arbetsflödet till önskat tillstånd. När en StateMachine aktivitet släpps till arbetsflödesdesignern är den förkonfigurerad med ett initialt tillstånd med namnet State1. Ett tillståndsdatorarbetsflöde måste ha ett och endast ett inledande tillstånd.
Ett tillstånd som representerar ett avslutande tillstånd i en tillståndsdator kallas för ett slutligt tillstånd. Ett slutligt tillstånd är ett tillstånd som har sin IsFinal egenskap inställd på true
, har ingen Exit aktivitet och inga övergångar som kommer från den. Om du vill lägga till ett slutligt tillstånd i ett arbetsflöde drar du en FinalState-aktivitetsdesigner från avsnittet Tillståndsdator i verktygslådan och släpper det till en StateMachine aktivitet på Windows Workflow Designer-ytan. Ett tillståndsdatorarbetsflöde måste ha minst ett slutligt tillstånd.
Konfigurera åtgärder för in- och avslut
Ett tillstånd kan ha en Entry och en Exit åtgärd. (Ett tillstånd som har konfigurerats som ett slutligt tillstånd kan bara ha en poståtgärd). När en arbetsflödesinstans anger ett tillstånd körs alla aktiviteter i inmatningsåtgärden. När poståtgärden är klar schemaläggs utlösarna för tillståndets övergångar. När en övergång till ett annat tillstånd bekräftas körs aktiviteterna i slutåtgärden, även om tillståndet övergår till samma tillstånd. När avslutsåtgärden har slutförts körs aktiviteterna i övergångens åtgärd och sedan övergår det nya tillståndet till och dess poståtgärder schemaläggs.
Kommentar
När du felsöker ett tillståndsdatorarbetsflöde kan brytpunkter placeras på rottillståndsmaskinaktiviteten och tillstånden i arbetsflödet för tillståndsdatorn. Brytpunkter kan inte placeras direkt på övergångarna, men de kan placeras på aktiviteter som ingår i tillstånden och övergångarna.
Skapa och konfigurera övergångar
Alla tillstånd måste ha minst en övergång, förutom ett slutligt tillstånd, som kanske inte har några övergångar. Övergångar kan läggas till när ett tillstånd har lagts till i ett tillståndsdatorarbetsflöde, eller så kan de skapas när tillståndet tas bort.
Om du vill lägga till en State och skapa en övergång i ett steg drar du en tillståndsaktivitet från avsnittet Tillståndsdator i verktygslådan och hovra den över ett annat tillstånd i arbetsflödesdesignern. När den dragna State är över en annan Statevisas fyra trianglar runt den andra State. State Om den släpps till en av de fyra trianglarna läggs den till på tillståndsdatorn och en övergång skapas från källan State till det borttagna målet State. Mer information finns i Transition Activity Designer.
Det finns två alternativ för att skapa en övergång när ett tillstånd har lagts till. Det första alternativet är att dra tillståndet från arbetsflödesdesignerns yta och hovra det över ett befintligt tillstånd och släppa det på en av släpppunkterna. Detta liknar den metod som beskrivs i föregående avsnitt. Du kan också hovra musen över önskat källtillstånd och dra en linje till önskat måltillstånd.
Kommentar
Ett enskilt tillstånd i en tillståndsdator kan ha upp till 76 övergångar skapade med hjälp av arbetsflödesdesignern. Gränsen för övergångar för ett tillstånd för arbetsflöden som skapats utanför designern begränsas endast av systemresurser.
En övergång kan ha en Trigger, en Conditionoch en Action. En övergång schemaläggs Trigger när övergångens källtillståndsåtgärd Entry är klar. Trigger Vanligtvis är det en aktivitet som väntar på att någon typ av händelse ska inträffa, men det kan vara vilken aktivitet som helst eller ingen aktivitet alls. Trigger När aktiviteten är klar utvärderas , om den Conditionfinns. Om det inte finns någon Trigger aktivitet Condition utvärderas omedelbart. Om villkoret utvärderas till false
avbryts övergången och Trigger aktiviteten för alla övergångar från tillståndet schemaläggs om. Om det finns andra övergångar som delar samma källtillstånd som den aktuella övergången avbryts och schemaläggs även dessa Trigger åtgärder om. Condition Om utvärderas till true
, eller om det inte finns något villkor, Exit körs åtgärden för källtillståndet och sedan Action körs övergången. När den Action är klar skickas kontrollen till måltillståndet
Övergångar som delar en vanlig utlösare kallas delade utlösarövergångar. Varje övergång i en grupp med delade utlösarövergångar har samma utlösare, men en unik Condition och åtgärd. Om du vill lägga till ytterligare åtgärder i en övergång och skapa en delad övergång klickar du på cirkeln som anger början på den önskade övergången och drar den till önskat tillstånd. Den nya övergången delar samma utlösare som den första övergången, men den har ett unikt villkor och en unik åtgärd. Delade övergångar kan också skapas inifrån övergångsdesignern genom att klicka på Lägg till delad utlösarövergång längst ned i övergångsdesignern och sedan välja önskat måltillstånd från listrutan Tillgängliga tillstånd för att ansluta .
Kommentar
Observera att om Condition en övergång utvärderas till False
(eller alla villkor för en delad utlösarövergång utvärderas till False
), sker inte övergången och alla utlösare för alla övergångar från tillståndet schemaläggs om.
Mer information om hur du skapar tillståndsdatorarbetsflöden finns i How to: Create a State Machine Workflow, StateMachine Activity Designer, State Activity Designer, FinalState Activity Designer och Transition Activity Designer.
Tillståndsdatorterminologi
I det här avsnittet definieras tillståndsmaskinens vokabulär som används i hela det här avsnittet.
Tillstånd
Den grundläggande enheten som består av en tillståndsdator. En tillståndsdator kan vara i ett tillstånd när som helst.
Poståtgärd
En aktivitet som körs när tillståndet anges
Avsluta åtgärd
En aktivitet som körs när tillståndet avslutas
Övergång
En riktad relation mellan två tillstånd som representerar det fullständiga svaret från en tillståndsdator på en förekomst av en händelse av en viss typ.
Delad övergång
En övergång som delar ett källtillstånd och en utlösare med en eller flera övergångar, men som har ett unikt villkor och en unik åtgärd.
Utlösare
En utlösande aktivitet som orsakar en övergång.
Villkor
En begränsning som måste utvärderas till efter att true
utlösaren inträffar för att övergången ska slutföras.
Övergångsåtgärd
En aktivitet som körs när en viss övergång utförs.
Villkorsstyrd övergång
En övergång med ett explicit villkor.
Självövergång
En övergång som överförs från ett tillstånd till sig själv.
Ursprungligt tillstånd
Ett tillstånd som representerar startpunkten för tillståndsdatorn.
Slutligt tillstånd
Ett tillstånd som representerar slutförandet av tillståndsdatorn.