Delen via


Werkstromen voor statuscomputers

Een statusmachine is een bekend paradigma voor het ontwikkelen van programma's. De StateMachine activiteit, samen metStateTransition, en andere activiteiten kunnen worden gebruikt om werkstroomprogramma's voor statuscomputers te bouwen. In dit onderwerp vindt u een overzicht van het maken van werkstromen voor statuscomputers.

Overzicht van werkstroom voor statuscomputers

Werkstromen voor statuscomputers bieden een modelleringsstijl waarmee u uw werkstroom op een gebeurtenisgestuurde manier kunt modelleren. Een StateMachine activiteit bevat de statussen en overgangen waaruit de logica van de statusmachine bestaat en kan overal worden gebruikt waar een activiteit kan worden gebruikt. Er zijn verschillende klassen in de runtime van de statusmachine:

Als u een werkstroom voor een statusmachine wilt maken, worden statussen toegevoegd aan een StateMachine activiteit en worden overgangen gebruikt om de stroom tussen statussen te beheren. In de volgende schermopname van de zelfstudiestapAan de slag: Een werkstroom voor statuscomputers maken, wordt een werkstroom voor de statusmachine met drie statussen en drie overgangen weergegeven. Initialize Target is de initiële status en vertegenwoordigt de eerste status in de werkstroom. Dit wordt aangewezen door de lijn die naar het knooppunt Start leidt. De uiteindelijke status in de werkstroom heet FinalState en vertegenwoordigt het punt waarop de werkstroom is voltooid.

Illustration that shows the completed state machine workflow.

Een werkstroom voor de statusmachine moet één en slechts één initiële status hebben en ten minste één laatste status. Elke status die geen definitieve status is, moet ten minste één overgang hebben. In de volgende secties worden statussen en overgangen gemaakt en geconfigureerd.

Statussen maken en configureren

A State vertegenwoordigt een status waarin een statusmachine zich kan bevinden. Als u een State werkstroom wilt toevoegen, sleept u deontwerpfunctie voor statusactiviteiten vanuit de sectie State Machine van de Werkset en zet u deze neer op een StateMachine activiteit op het gebied van Windows Workflow Designer.

Screenshot of the State Machine section of the Toolbox.

Als u een status wilt configureren als de beginstatus, klikt u met de rechtermuisknop op de status en selecteert u Instellen als beginstatus. Als er geen huidige beginstatus is, kan de beginstatus ook worden aangewezen door een lijn van het beginknooppunt boven aan de werkstroom naar de gewenste status te slepen. Wanneer een StateMachine activiteit naar de werkstroomontwerper wordt verwijderd, wordt deze vooraf geconfigureerd met de initiële status State1. Een werkstroom voor de statusmachine moet één en slechts één initiële status hebben.

Een status die een afsluitstatus in een statusmachine vertegenwoordigt, wordt een uiteindelijke status genoemd. Een uiteindelijke status is een status waarop de eigenschap is IsFinal ingesteld true, heeft geen Exit activiteit en geen overgangen die ervan afkomstig zijn. Als u een definitieve status wilt toevoegen aan een werkstroom, sleept u een FinalState-activiteitontwerper uit de sectie State Machine van de Werkset en zet u deze neer op een StateMachine activiteit op het gebied van Windows Workflow Designer. Een werkstroom voor de statusmachine moet ten minste één laatste status hebben.

Invoer- en afsluitacties configureren

Een status kan een Entry en een Exit actie hebben. (Een status die is geconfigureerd als een uiteindelijke status, heeft mogelijk slechts een invoeractie). Wanneer een werkstroomexemplaren een status invoeren, worden alle activiteiten in de invoeractie uitgevoerd. Wanneer de invoeractie is voltooid, worden de triggers voor de overgangen van de status gepland. Wanneer een overgang naar een andere status wordt bevestigd, worden de activiteiten in de afsluitactie uitgevoerd, zelfs als de status teruggaat naar dezelfde status. Nadat de afsluitactie is voltooid, worden de activiteiten in de actie van de overgang uitgevoerd en wordt de nieuwe status overgezet naar en worden de invoeracties gepland.

Notitie

Bij het opsporen van fouten in een werkstroom voor statuscomputers kunnen onderbrekingspunten worden geplaatst voor de activiteit van de hoofdstatusmachine en statussen in de werkstroom van de statusmachine. Onderbrekingspunten worden mogelijk niet rechtstreeks op de overgangen geplaatst, maar ze kunnen worden geplaatst op activiteiten in de statussen en overgangen.

Overgangen maken en configureren

Alle statussen moeten ten minste één overgang hebben, met uitzondering van een uiteindelijke status, die mogelijk geen overgangen heeft. Overgangen kunnen worden toegevoegd nadat een status is toegevoegd aan een werkstroom voor de statusmachine of ze kunnen worden gemaakt wanneer de status wordt verwijderd.

Als u in één stap een State overgang wilt toevoegen en maken, sleept u een statusactiviteit uit de sectie State Machine van de Werkset en plaatst u deze boven een andere status in de werkstroomontwerper. Wanneer de sleep over een andere Stateis gesleeptState, worden er vier driehoekjes rond de andere Statedriehoek weergegeven. Als de State driehoek wordt neergezet op een van de vier driehoeken, wordt deze toegevoegd aan de statusmachine en wordt er een overgang gemaakt van de bron State naar het verwijderde doel State. Zie Transition Activity Designer voor meer informatie.

Als u een overgang wilt maken nadat een status is toegevoegd, zijn er twee opties. De eerste optie is om de status van het ontwerpoppervlak van de werkstroom te slepen en deze boven een bestaande status te plaatsen en neer te zetten op een van de drop points. Dit is vergelijkbaar met de methode die in de vorige sectie is beschreven. U kunt ook de muisaanwijzer over de gewenste bronstatus bewegen en een lijn naar de gewenste doelstatus slepen.

Notitie

Eén status in een statusmachine kan maximaal 76 overgangen hebben die zijn gemaakt met behulp van de werkstroomontwerper. De limiet voor overgangen voor een status voor werkstromen die buiten de ontwerpfunctie zijn gemaakt, wordt alleen beperkt door systeembronnen.

Een overgang kan een Trigger, a Conditionen een Action. Een overgang Trigger wordt gepland wanneer de actie van de bronstatus van Entry de overgang is voltooid. Meestal is dit Trigger een activiteit die wacht tot een bepaald type gebeurtenis plaatsvindt, maar dit kan elke activiteit zijn of helemaal geen activiteit. Zodra de Trigger activiteit is voltooid, wordt de Condition, indien aanwezig, geëvalueerd. Als er geen Trigger activiteit is, wordt het Condition onmiddellijk geëvalueerd. Als de voorwaarde wordt geëvalueerd false, wordt de overgang geannuleerd en wordt de Trigger activiteit voor alle overgangen van de status opnieuw gepland. Als er andere overgangen zijn die dezelfde bronstatus delen als de huidige overgang, worden deze Trigger acties ook geannuleerd en opnieuw gepland. Als de Condition evaluatie trueof er geen voorwaarde is, wordt de actie van de Exit bronstatus uitgevoerd en wordt de Action overgang uitgevoerd. Wanneer de Action bewerking is voltooid, wordt het besturingselement doorgegeven aan de doelstatus

Overgangen die een gemeenschappelijke trigger delen, worden gedeelde triggerovergangen genoemd. Elke overgang in een groep gedeelde triggerovergangen heeft dezelfde trigger, maar een unieke en actie Condition . Als u extra acties wilt toevoegen aan een overgang en een gedeelde overgang wilt maken, klikt u op de cirkel die het begin van de gewenste overgang aangeeft en sleept u deze naar de gewenste status. De nieuwe overgang deelt dezelfde trigger als de eerste overgang, maar heeft een unieke voorwaarde en actie. Gedeelde overgangen kunnen ook worden gemaakt vanuit de overgangsontwerper door onder aan de overgangsontwerper op Gedeelde triggerovergang toevoegen te klikken en vervolgens de gewenste doelstatus te selecteren in de vervolgkeuzelijst Beschikbare statussen om verbinding te maken.

Notitie

Houd er rekening mee dat als de Condition overgang resulteert in False (of alle voorwaarden van een gedeelde triggerovergang worden geëvalueerd), Falsede overgang niet plaatsvindt en alle triggers voor alle overgangen van de status opnieuw worden gepland.

Zie How to: Create a State Machine Workflow, StateMachine Activity Designer, State Activity Designer, FinalState Activity Designer en Transition Activity Designer voor meer informatie over het maken van statusmachinewerkstromen.

Terminologie voor statuscomputers

In deze sectie wordt de woordenlijst voor de statusmachine gedefinieerd die in dit onderwerp wordt gebruikt.

Provincie
De basiseenheid die een statusmachine opstelt. Een statusmachine kan zich op elk gewenst moment in één status bevinden.

Invoeractie
Een activiteit die wordt uitgevoerd bij het invoeren van de status

Afsluitactie
Een activiteit die wordt uitgevoerd bij het afsluiten van de status

Transition
Een gerichte relatie tussen twee statussen die het volledige antwoord van een statusmachine vertegenwoordigen op een gebeurtenis van een bepaald type.

Gedeelde overgang
Een overgang die een bronstatus en trigger deelt met een of meer overgangen, maar een unieke voorwaarde en actie heeft.

Activator
Een triggeractiviteit die ervoor zorgt dat er een overgang plaatsvindt.

Conditie
Een beperking die moet worden geëvalueerd true nadat de trigger plaatsvindt om de overgang te voltooien.

Overgangsactie
Een activiteit die wordt uitgevoerd bij het uitvoeren van een bepaalde overgang.

Voorwaardelijke overgang
Een overgang met een expliciete voorwaarde.

Zelfovergang
Een overgang die van een status naar zichzelf gaat.

Beginstatus
Een status die het beginpunt van de statusmachine vertegenwoordigt.

Eindstatus
Een status die de voltooiing van de statusmachine aangeeft.

Zie ook