Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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.
Az állapotgép-munkafolyamatnak egy és csak egy kezdeti állapotúnak és legalább egy végső állapotnak kell lennie. Minden állapot, amely nem végső állapot, legalább egy átmenettel kell rendelkezzen. 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
A State olyan állapotot jelöl, amelyben állapotgép tartózkodhat. Ha hozzá szeretne adni egy State munkafolyamatot, 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.
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épben olyan állapotot, amely egy befejező állapotot képvisel, végá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 nincsenek belőle kiinduló áttűnések. 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 egy tevékenységre StateMachine 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 Exit művelete. (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 a tranzíció műveleteinek tevékenységei végrehajtódnak, majd az új állapotba kerülünk, és a belépési műveletek ütemezve lesznek.
Megjegyzés:
Állapotgép-munkafolyamat hibakeresésekor töréspontok helyezhetők el a gyökérállapotgép-tevékenységre és az állapotokra az állapotgép-munkafolyamaton belül. A töréspontok nem helyezhetők közvetlenül az állapotátmenetekre, de elhelyezhetők az állapotokon belüli és az állapotátmenetekhez tartozó tevékenységekre.
Á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éget az EszközkészletÁllapotgép szakaszából, és mutasson rá egy másik állapotra a munkafolyamat-tervezőben. Amikor a húzott State egy másik State fölé kerül, négy háromszög fog megjelenni a másik State körül. Ha a State négy háromszög egyikére kerül, hozzáadódik az állapotgéphez, és létrejön egy átmenet a forrás State-ből az elhelyezett célhelyre State. További információ: Áttűnéstevé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.
Megjegyzés:
Egy állapotgép egyetlen állapotában legfeljebb 76 átmenetet lehet létrehozni a munkafolyamat-tervező segítségé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 egy Trigger olyan tevékenység, amely valamilyen esemény bekövetkeztére vár, de lehet bármilyen tevékenység vagy akár egyáltalán semmilyen. 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 false, az átmenet megszakad, és a rendszer újraütemezi az állapotból induló összes átmenet Trigger tevékenységeit. 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 Conditiontrue értékelőt ad, vagy nincs feltétel, akkor a rendszer végrehajtja a Exit forrásállapot műveleteit, és aztán végrehajtja az Action átmenet lépéseit. Amikor a művelet befejeződik, a Action vezérlő a Cél állapotba kerül
A közös triggert használó áttűnéseket megosztott triggeres áttűnéseknek nevezzük. A megosztott eseményindító áttűnések csoportjának minden eseményindítója ugyanaz, de mindegyiknek egyedi Condition és művelete van. 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 .
Megjegyzés:
Vegye figyelembe, hogy ha egy Condition áttűnés kiértékelése False lesz (vagy egy megosztott eseményindító-áttűnés összes feltétele kiértékelése False lesz), az áttűnés nem fog bekövetkezni, és az adott állapotból induló összes átmenet eseményindítói újraütemezésre kerülnek.
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égtervező, Állapottevékenység-tervező, FinalState Tevékenységtervező és Áttűnési tevékenységtervező.
State Machine Terminológia
Ez a szakasz a jelen témakör során használt állapotgép-szókészletet határozza meg.
State 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
Áttűnés Egy irányított kapcsolat két állapot között, amely egy állapotgép teljes válaszát jelenti egy adott típusú esemény előfordulására.
Megosztott áttűnés: Egy forrásállapotot és eseményindítót egy vagy több áttűnéssel megosztó, de egyedi feltétellel és művelettel rendelkező áttűnés.
Esemény, amely egy átmenetet okozó tevékenységet indít.
Feltétel Olyan kényszer, amelynek az eseményindítót követően true-ra kell kiértékelődnie ahhoz, hogy az átmenet befejeződhessen.
Áttűnési művelet: Egy adott áttűnés végrehajtásakor végrehajtott tevékenység.
Feltételes átmenet explicit feltétellel.
Önátmenet: Olyan átmenet, amely egy állapotból önmagába megy át.
Az állapotgép kiindulási pontját reprezentáló kezdeti állapot.
A végső állapot az állapotgép befejezését jelképező állapot.