Pracovní postupy stavového stroje

Stavový počítač je dobře známé paradigma pro vývoj programů. Aktivita StateMachine spolu s a Transitiondalšími aktivitami Statelze použít k sestavení programů pracovních postupů stavového počítače. Toto téma obsahuje přehled vytváření pracovních postupů stavového počítače.

Přehled pracovního postupu stavových počítačů

Pracovní postupy stavových počítačů poskytují styl modelování, pomocí kterého můžete modelovat pracovní postup způsobem řízeným událostmi. Aktivita StateMachine obsahuje stavy a přechody, které tvoří logiku stavového počítače, a lze ji použít všude, kde se dá aktivita použít. Modul runtime stavového počítače má několik tříd:

Pokud chcete vytvořit pracovní postup stavového počítače, přidají se do StateMachine aktivity stavy a přechody se používají k řízení toku mezi stavy. Následující snímek obrazovky z kroku Začínáme – Postupy: Vytvoření pracovního postupu stavového počítače znázorňuje pracovní postup stavového počítače se třemi stavy a třemi přechody. Inicializace cíle je počáteční stav a představuje první stav v pracovním postupu. Ten je určen čárou, která ji vede z uzlu Start . Konečný stav pracovního postupu má název FinalState a představuje bod, ve kterém je pracovní postup dokončen.

Illustration that shows the completed state machine workflow.

Pracovní postup stavového počítače musí mít jeden a pouze jeden počáteční stav a alespoň jeden konečný stav. Každý stav, který není konečným stavem, musí mít alespoň jeden přechod. Následující části se týkají vytváření a konfigurace stavů a přechodů.

Vytváření a konfigurace stavů

A State představuje stav, ve kterém může být stavový počítač. Pokud chcete přidat State do pracovního postupu, přetáhněte návrháře stavových aktivit z oddílu Stavový počítač na panelu nástrojů a přetáhněte ho na StateMachine aktivitu na ploše Návrháře pracovního postupu Systému Windows.

Screenshot of the State Machine section of the Toolbox.

Chcete-li nakonfigurovat stav jako počáteční stav, klikněte pravým tlačítkem myši na stav a vyberte Nastavit jako počáteční stav. Navíc pokud neexistuje žádný aktuální počáteční stav, můžete počáteční stav určit přetažením řádku z uzlu Start v horní části pracovního postupu do požadovaného stavu. StateMachine Když je aktivita vyřazena do návrháře pracovního postupu, je předem nakonfigurována s počátečním stavem s názvem State1. Pracovní postup stavového počítače musí mít jeden a pouze jeden počáteční stav.

Stav, který představuje ukončovací stav ve stavovém počítači, se nazývá konečný stav. Konečný stav je stav, který má jeho IsFinal vlastnost nastavena na true, nemá žádnou Exit aktivitu a žádné přechody pocházející z něj. Chcete-li přidat konečný stav do pracovního postupu, přetáhněte návrhář aktivity FinalState z oddílu Stavový počítač panelu nástrojů a přesuňte ho na StateMachine aktivitu na ploše Návrháře pracovního postupu Systému Windows. Pracovní postup stavového počítače musí mít alespoň jeden konečný stav.

Konfigurace akcí vstupu a ukončení

Stav může mít nějakou Entry akci a Exit akci. (Stav nakonfigurovaný jako konečný stav může mít pouze akci zadávání). Když instance pracovního postupu přejde do stavu, spustí se všechny aktivity v akci zadávání. Po dokončení akce zadávání se aktivační události pro přechody stavu naplánují. Po potvrzení přechodu na jiný stav se aktivity v akci ukončení spustí, i když se stav vrátí zpět do stejného stavu. Po dokončení akce ukončení se aktivity v akci přechodu spustí a pak se nový stav překončí a jeho vstupní akce se naplánují.

Poznámka:

Při ladění pracovního postupu stavového počítače je možné zarážky umístit do aktivity kořenového stavového počítače a stavy v rámci pracovního postupu stavového počítače. Zarážky nemusí být umístěny přímo na přechody, ale mohou být umístěny na jakékoli činnosti obsažené ve státech a přechodech.

Vytváření a konfigurace přechodů

Všechny stavy musí mít alespoň jeden přechod s výjimkou konečného stavu, který nemusí mít žádné přechody. Přechody můžou být přidány po přidání stavu do pracovního postupu stavového počítače nebo se dají vytvořit při vyřazení stavu.

Pokud chcete přidat State a vytvořit přechod v jednom kroku, přetáhněte aktivitu stavu z oddílu Stavový počítač panelu nástrojů a najeďte myší na jiný stav v návrháři pracovního postupu. Když je přetažena State nad jinou State, zobrazí se kolem druhé Statečtyři trojúhelníky . State Pokud se přehodí na jeden ze čtyř trojúhelníků, přidá se do stavového počítače a vytvoří se přechod ze zdroje State do vyřazeného cíle State. Další informace naleznete v tématu Návrhář aktivity přechodu.

Pokud chcete vytvořit přechod po přidání stavu, existují dvě možnosti. První možností je přetáhnout stav z plochy návrháře pracovního postupu a najet myší na existující stav a umístit ho na jeden z bodů přetažení. Podobá se metodě popsané v předchozí části. Můžete také najet myší na požadovaný stav zdroje a přetáhnout čáru do požadovaného cílového stavu.

Poznámka:

Jeden stav ve stavovém počítači může mít až 76 přechodů vytvořených pomocí návrháře pracovního postupu. Limit přechodu pro stav pracovních postupů vytvořených mimo návrháře je omezen pouze systémovými prostředky.

Přechod může mít , Triggera Condition, a Action. Přechod Trigger je naplánován, když je dokončena akce zdrojového stavu Entry přechodu. Obvykle se jedná Trigger o aktivitu, která čeká na výskyt nějakého typu události, ale může to být jakákoli aktivita nebo vůbec žádná aktivita. Trigger Po dokončení Conditionaktivity se vyhodnotí hodnota , pokud je k dispozici. Pokud žádná aktivita neexistuje Trigger , vyhodnotí se Condition okamžitě. Pokud se podmínka vyhodnotí jako falsepodmínka , přechod se zruší a Trigger aktivita pro všechny přechody ze stavu se přeplánuje. Pokud existují další přechody, které sdílejí stejný stav zdroje jako aktuální přechod, tyto Trigger akce se zruší a přeplánují také. Pokud se Condition vyhodnotí jako truenebo neexistuje žádná podmínka, Exit provede se akce zdrojového stavu a pak Action se provede přechod. Action Po dokončení se ovládací prvek předá do cílového stavu.

Přechody, které sdílejí společný trigger, se označují jako přechody sdílených triggerů. Každý přechod ve skupině přechodů sdílených triggerů má stejnou aktivační událost, ale jedinečnou Condition akci. Pokud chcete do přechodu přidat další akce a vytvořit sdílený přechod, klikněte na kruh, který označuje začátek požadovaného přechodu, a přetáhněte ho do požadovaného stavu. Nový přechod bude sdílet stejnou aktivační událost jako počáteční přechod, ale bude mít jedinečnou podmínku a akci. Sdílené přechody lze také vytvořit v návrháři přechodu kliknutím na Přidat sdílený přechod triggeru v dolní části návrháře přechodu a výběrem požadovaného cílového stavu z dostupných stavů připojit rozevírací seznam.

Poznámka:

Všimněte si, že pokud se Condition přechod vyhodnotí jako False (nebo všechny podmínky sdíleného přechodu triggeru se vyhodnotí jako ), nedojde k Falsepřechodu a všechny triggery pro všechny přechody ze stavu se přeplánují.

Další informace o vytváření pracovních postupů stavového počítače naleznete v tématu Postupy: Vytvoření pracovního postupu state machine, StateMachine Activity Designer, State Activity Designer, FinalState Activity Designer a Transition Activity Designer.

Terminologie stavových počítačů

Tato část definuje slovník stavového stroje používaný v tomto tématu.

Stav
Základní jednotka, která sestavuje stavový počítač. Stavový počítač může být v každém konkrétním okamžiku v jednom stavu.

Akce položky
Aktivita provedená při vstupu do stavu

Ukončit akci
Aktivita spuštěná při ukončení stavu

Transition
Směrovaný vztah mezi dvěma stavy, které představují úplnou odpověď stavového počítače na výskyt události určitého typu.

Sdílený přechod
Přechod, který sdílí zdrojový stav a trigger s jedním nebo více přechody, ale má jedinečnou podmínku a akci.

Trigger
Aktivační aktivita, která způsobí, že dojde k přechodu.

Podmínka
Omezení, které se musí vyhodnotit na true po spuštění triggeru, aby se přechod dokončil.

Akce přechodu
Aktivita, která se provádí při provádění určitého přechodu.

Podmíněný přechod
Přechod s explicitní podmínkou.

Samoobslužný přechod
Přechod, který přechází ze stavu do sebe.

Počáteční stav
Stav, který představuje výchozí bod stavového počítače.

Konečný stav
Stav, který představuje dokončení stavového počítače.

Viz také