Megosztás a következőn keresztül:


Állapotgép-munkafolyamatok

Az állapotgép egy jól ismert paradigma a programok fejlesztéséhez. A StateMachine tevékenység és Stateaz egyéb Transitiontevékenységek felhasználhatók állapotgép-munkafolyamat-programok létrehozására. Ez a témakör áttekintést nyújt az állapotgép-munkafolyamatok létrehozásáról.

Állapotgép-munkafolyamat áttekintése

Az állapotgép-munkafolyamatok olyan modellezési stílust biztosítanak, amellyel eseményvezérelt módon modellezheti a munkafolyamatot. A StateMachine tevékenység az állapotgép logikáját alkotó állapotokat és áttűnéseket tartalmazza, és bárhol használható, ahol egy tevékenység használható. Az állapotgép-futtatókörnyezetben több osztály is létezik:

Állapotgép-munkafolyamat létrehozásához a rendszer állapotokat ad hozzá egy StateMachine tevékenységhez, és áttűnésekkel szabályozza az állapotok közötti folyamatot. Az első lépések oktatóanyagának Útmutató: Állapotgép-munkafolyamat létrehozása című lépésének következő képernyőképe egy állapotgép-munkafolyamatot jelenít meg három állapottal és három áttűnéssel. A Cél inicializálása a kezdeti állapot, amely a munkafolyamat első állapotát jelöli. Ezt a kezdő csomópontból a hozzá vezető vonal jelöli. A munkafolyamat végső állapota FinalState néven van elnevezve, és azt a pontot jelöli, ahol a munkafolyamat befejeződött.

Illustration that shows the completed state machine workflow.

Az állapotgép-munkafolyamatnak egy és csak egy kezdeti állapotúnak és legalább egy végső állapotnak kell lennie. Minden nem végleges állapotnak legalább egy áttűnéssel kell rendelkeznie. Az alábbi szakaszok az állapotok és áttűnések létrehozását és konfigurálását ismertetik.

Állapotok létrehozása és konfigurálása

Az A State olyan állapotot jelöl, amelyben egy állapotgép lehet. Ha hozzá szeretne adni egy State munkafolyamathoz, húzza az Állapottevékenység-tervezőt az Eszközkészlet Állapotgép szakaszából, StateMachine és helyezze egy tevékenységre a Windows-munkafolyamat Tervező felületén.

Screenshot of the State Machine section of the Toolbox.

Ha kezdeti állapotként szeretne konfigurálni egy állapotot, kattintson a jobb gombbal az állapotra, és válassza a Beállítás kezdeti állapotként lehetőséget. Továbbá, ha nincs aktuális kezdeti állapot, a kezdeti állapot kijelölhető úgy, hogy a munkafolyamat tetején lévő Start csomópontról a kívánt állapotba húz egy vonalat. Amikor egy StateMachine tevékenység bekerül a munkafolyamat-tervezőbe, az előre konfigurálva van egy State1 nevű kezdeti állapottal. Az állapotgép-munkafolyamatoknak csak egy kezdeti állapotúnak kell lenniük.

Az állapotgép záró állapotát záró állapotnak nevezzük. A végső állapot olyan állapot, amelynek a tulajdonsága IsFinal be van állítva true, nincs Exit tevékenysége, és nem származik áttűnés. Ha végleges állapotot szeretne hozzáadni egy munkafolyamathoz, húzza a FinalState tevékenységtervezőt az Eszközkészlet Állapotgép szakaszából, és helyezze át egy StateMachine tevékenységre a Windows-munkafolyamat Tervező felületén. Az állapotgép-munkafolyamatnak legalább egy végső állapotúnak kell lennie.

Belépési és kilépési műveletek konfigurálása

Egy állapotnak lehet egy Entry és egy művelete Exit . (A végleges állapotként konfigurált állapotnak csak belépési művelete lehet). Amikor egy munkafolyamat-példány belép egy állapotba, a bejegyzési műveletben szereplő tevékenységek végrehajtása történik. Amikor a belépési művelet befejeződött, az állapotváltások eseményindítói ütemezve lesznek. Ha egy másik állapotra való áttérés megerősítést nyer, a rendszer végrehajtja a kilépési művelet tevékenységeit, még akkor is, ha az állapot visszaáll ugyanarra az állapotra. A kilépési művelet befejeződése után az áttűnési művelet tevékenységei végre lesznek hajtva, majd az új állapotra kerülnek át, és a belépési műveletek ütemezve lesznek.

Feljegyzés

Állapotgép-munkafolyamat hibakeresésekor töréspontok helyezhetők el a gyökérállapot-gép tevékenységére és állapotára az állapotgép-munkafolyamaton belül. A töréspontok nem helyezhetők közvetlenül az áttűnésekre, de az állapotokon és áttűnéseken belüli tevékenységekre is elhelyezhetők.

Áttűnések létrehozása és konfigurálása

Minden államnak legalább egy áttűnéssel kell rendelkeznie, kivéve a végleges állapotot, amely nem feltétlenül rendelkezik áttűnésekkel. Az áttűnések akkor vehetők fel, ha egy állapot hozzáadódik egy állapotgép munkafolyamatához, vagy az állapot elvetése után hozhatók létre.

State Ha egy lépésben szeretne áttűnést létrehozni, húzzon egy állapottevékenységetaz Eszközkészlet Állapotgép szakaszából, és mutasson rá egy másik állapotra a munkafolyamat-tervezőben. Ha a húzással State egy másik Statefölé kerül, négy háromszög jelenik meg a másik Statekörül . Ha a rendszer a State négy háromszög egyikére veti a elemet, a rendszer hozzáadja az állapotgéphez, és áttűnést hoz létre a forrásból State az elvetett célhelyre State. További információ: Áttűnési tevékenység Tervező.

Ha egy állapot hozzáadása után szeretne áttűnést létrehozni, két lehetőség közül választhat. Az első lehetőség az, hogy húzza az állapotot a munkafolyamat-tervező felületéről, mutasson rá egy meglévő állapotra, és helyezze az egyik legördülő pontra. Ez hasonló az előző szakaszban leírt módszerhez. Az egérmutatót a kívánt forrásállapot fölé is rámutathatja, és húzhat egy vonalat a kívánt célállapotra.

Feljegyzés

Egy állapotgép egyetlen állapota legfeljebb 76 áttűnést hozhat létre a munkafolyamat-tervezővel. A tervezőn kívül létrehozott munkafolyamatok állapotának áttűnésekre vonatkozó korlátját csak a rendszererőforrások korlátozzák.

Az áttűnés lehet egy Trigger, egy Conditionés egy Action. Az áttűnések Trigger akkor lesznek ütemezve, ha az áttűnés forrásállapotának művelete Entry befejeződött. Általában olyan Trigger tevékenység, amely valamilyen esemény bekövetkeztére vár, de bármilyen tevékenység lehet, vagy egyáltalán nem. A tevékenység befejezése után a TriggerCondition(ha van) kiértékelése megtörténik. Ha nincs Trigger tevékenység, akkor az Condition azonnal kiértékelésre kerül. Ha a feltétel kiértékelése így történik, az áttűnés falsemegszakad, és az Trigger állapotból való összes áttűnés tevékenységét újraütemezi a rendszer. Ha vannak más áttűnések is, amelyek az aktuális áttűnés forrásállapotával azonosak, akkor a Trigger program ezeket a műveleteket is megszakítja és újraütemezi. Ha a Condition kiértékelés trueeredménye , vagy nincs feltétel, akkor a rendszer végrehajtja a Exit forrásállapot műveletét, majd végrehajtja az Action áttűnést. Amikor a művelet befejeződik, a Action vezérlő a Cél állapotba kerül

A közös eseményindítót használó áttűnéseket megosztott eseményindító-áttűnéseknek nevezzük. A megosztott eseményindító-áttűnések csoportjának minden áttűnése ugyanazzal az eseményindítóval rendelkezik, de egyedi Condition és művelet. Ha további műveleteket szeretne hozzáadni egy áttűnéshez, és közös áttűnést szeretne létrehozni, kattintson arra a körre, amely jelzi a kívánt áttűnés kezdetét, és húzza a kívánt állapotba. Az új áttűnés ugyanazzal az eseményindítóval fog rendelkezni, mint a kezdeti áttűnés, de egyedi feltétellel és műveletlel fog rendelkezni. A megosztott áttűnések az áttűnési tervezőn belülről is létrehozhatók, ha az áttűnési tervező alján a Megosztott eseményindító áttűnés hozzáadása elemre kattint, majd kiválasztja a kívánt célállapotot az Elérhető állapotokból a legördülő listához való csatlakozáshoz.

Feljegyzés

Vegye figyelembe, hogy ha egy Condition áttűnés kiértékelése (vagy egy megosztott eseményindító-áttűnés False összes feltétele kiértékelése) lesz, az áttűnés nem fog bekövetkezni False, és az állapotból való összes átmenet összes eseményindítója újra lesz ütemezve.

Az állapotgép-munkafolyamatok létrehozásával kapcsolatos további információkért lásd: Állapotgép-munkafolyamat létrehozása, StateMachine tevékenység Tervező, Állapottevékenység Tervező, FinalState tevékenység Tervező és áttűnési tevékenység Tervező.

State Machine Terminológia

Ez a szakasz a jelen témakör során használt állapotgép-szókészletet határozza meg.

Állapot
Az állapotgépet alkotó alapegység. Az állapotszámítógépek bármikor egy állapotban lehetnek.

Belépési művelet
Az állapot megadásakor végrehajtott tevékenység

Kilépési művelet
Az állapotból való kilépéskor végrehajtott tevékenység

Váltás
Irányított kapcsolat két állapot között, amely egy állapotgép teljes válaszát jelzi egy adott típusú esemény bekövetkezésére.

Megosztott áttűnés
Egy olyan áttűnés, amely egy forrásállapotot oszt meg, és egy vagy több áttűnéssel aktiválódik, de egyedi feltétellel és művelettel rendelkezik.

Eseményindító
Egy eseményindító tevékenység, amely átmenetet okoz.

Feltétel
Egy kényszer, amelyet az eseményindító után kell kiértékelni true ahhoz, hogy az áttűnés befejeződjön.

Áttűnési művelet
Egy bizonyos áttűnés végrehajtásakor végrehajtott tevékenység.

Feltételes áttűnés
Áttűnés explicit feltétellel.

Önáttűnés
Áttűnés, amely egy állapotból önmagába halad át.

Kezdeti állapot
Az állapotgép kiindulási pontját jelképező állapot.

Végleges állapot
Az állapotgép befejezését jelképező állapot.

Lásd még