Udostępnij za pośrednictwem


Przepływy pracy automatu stanów

Maszyna stanowa jest dobrze znanym paradygmatem do tworzenia programów. DziałanieStateMachine, wraz z StateTransition, i innymi działaniami, może służyć do tworzenia programów przepływu pracy maszyny stanu. Ten temat zawiera omówienie tworzenia przepływów pracy maszyny stanu.

Omówienie przepływu pracy maszyny stanu

Przepływy pracy maszyny stanu zapewniają styl modelowania, za pomocą którego można modelować przepływ pracy w sposób sterowany zdarzeniami. Działanie StateMachine zawiera stany i przejścia, które składają się na logikę maszyny stanu i mogą być używane w dowolnym miejscu, w którym można użyć działania. W środowisku uruchomieniowym maszyny stanu istnieje kilka klas:

Aby utworzyć przepływ pracy maszyny stanu, stany są dodawane do StateMachine działania, a przejścia są używane do kontrolowania przepływu między stanami. Poniższy zrzut ekranu z kroku Samouczek z wprowadzeniem: Tworzenie przepływu pracy maszyny stanu przedstawia przepływ pracy maszyny stanu z trzema stanami i trzema przejściami. Inicjowanie elementu target jest stanem początkowym i reprezentuje pierwszy stan w przepływie pracy. Jest to wyznaczone przez wiersz prowadzący do niego z węzła Start . Stan końcowy w przepływie pracy nosi nazwę FinalState i reprezentuje punkt, w którym przepływ pracy został ukończony.

Illustration that shows the completed state machine workflow.

Przepływ pracy maszyny stanu musi mieć jeden i tylko jeden stan początkowy oraz co najmniej jeden stan końcowy. Każdy stan, który nie jest stanem końcowym, musi mieć co najmniej jedno przejście. W poniższych sekcjach opisano tworzenie i konfigurowanie stanów i przejść.

Tworzenie i konfigurowanie stanów

A State reprezentuje stan, w którym może znajdować się maszyna stanu. Aby dodać State element do przepływu pracy, przeciągnij projektanta działań stanu z sekcji State Machine przybornika i upuść go na StateMachine działanie na powierzchni Projektant przepływu pracy systemu Windows.

Screenshot of the State Machine section of the Toolbox.

Aby skonfigurować stan jako stan początkowy, kliknij prawym przyciskiem myszy stan i wybierz pozycję Ustaw jako stan początkowy. Ponadto, jeśli nie ma bieżącego stanu początkowego, stan początkowy można wyznaczyć, przeciągając wiersz z węzła Start w górnej części przepływu pracy do żądanego stanu. StateMachine Gdy działanie jest porzucane do projektanta przepływu pracy, jest wstępnie skonfigurowane ze stanem początkowym o nazwie State1. Przepływ pracy maszyny stanu musi mieć jeden i tylko jeden stan początkowy.

Stan reprezentujący stan zakończenia na maszynie stanu jest nazywany stanem końcowym. Stan końcowy to stan, który ma właściwość IsFinal ustawioną na true, nie Exit ma działania i nie ma z niego żadnych przejść. Aby dodać stan końcowy do przepływu pracy, przeciągnij projektanta działań FinalState z sekcji State Machine przybornika i upuść go na StateMachine działanie na powierzchni przepływu pracy systemu Windows Projektant. Przepływ pracy maszyny stanu musi mieć co najmniej jeden stan końcowy.

Konfigurowanie akcji wejścia i wyjścia

Stan może mieć Entry akcję i Exit . (Stan skonfigurowany jako stan końcowy może mieć tylko akcję wpisu). Gdy wystąpienie przepływu pracy wejdzie w stan, wszystkie działania wykonywane w akcji wprowadzania. Po zakończeniu akcji wprowadzania zaplanowano wyzwalacze przejścia stanu. Po potwierdzeniu przejścia do innego stanu działania w akcji zakończenia są wykonywane, nawet jeśli stan przechodzi z powrotem do tego samego stanu. Po zakończeniu akcji zakończenia działania w akcji przejścia są wykonywane, a następnie nowy stan zostanie przeniesiony do, a jego akcje wejścia są zaplanowane.

Uwaga

Podczas debugowania przepływu pracy maszyny stanu punkty przerwania można umieścić w działaniu komputera stanu głównego i stanach w przepływie pracy maszyny stanu. Punkty przerwania mogą nie być umieszczane bezpośrednio w przejściach, ale mogą być umieszczane w dowolnych działaniach zawartych w stanach i przejściach.

Tworzenie i konfigurowanie przejść

Wszystkie stany muszą mieć co najmniej jedno przejście, z wyjątkiem stanu końcowego, który może nie mieć żadnych przejść. Przejścia mogą być dodawane po dodaniu stanu do przepływu pracy maszyny stanu lub można je utworzyć w miarę porzucania stanu.

Aby dodać State element i utworzyć przejście w jednym kroku, przeciągnij działanie State (Stan) z sekcji State Machine (Maszyna stanu) przybornika i umieść kursor na innym stanie w projektancie przepływu pracy. Gdy przeciągnięty State element znajduje się na innym State, cztery trójkąty pojawią się wokół drugiego Stateelementu . Jeśli obiekt State zostanie porzucony na jeden z czterech trójkątów, zostanie dodany do maszyny stanu, a przejście zostanie utworzone ze źródła State do usuniętego miejsca docelowego State. Aby uzyskać więcej informacji, zobacz Projektant działania przejścia.

Aby utworzyć przejście po dodaniu stanu, dostępne są dwie opcje. Pierwszą opcją jest przeciągnięcie stanu z powierzchni projektanta przepływu pracy i umieszczenie go na istniejącym stanie i upuszczanie go na jednym z punktów upuszczania. Jest to podobne do metody opisanej w poprzedniej sekcji. Możesz również umieścić wskaźnik myszy na żądanym stanie źródłowym i przeciągnąć linię do żądanego stanu docelowego.

Uwaga

Pojedynczy stan na maszynie stanu może mieć maksymalnie 76 przejść utworzonych przy użyciu projektanta przepływu pracy. Limit przejść dla stanu przepływów pracy utworzonych poza projektantem jest ograniczony tylko przez zasoby systemowe.

Przejście może mieć Triggerwartość , , Conditioni Action. Trigger Przejście jest zaplanowane po zakończeniu działania stanu Entry źródłowego przejścia. Trigger Zazwyczaj jest to działanie, które oczekuje na wystąpienie pewnego typu zdarzenia, ale może to być dowolne działanie lub żadne działanie w ogóle. Po zakończeniu Trigger działania zostanie obliczona Conditionwartość , jeśli istnieje. Jeśli nie Trigger ma żadnych działań, zostanie ona natychmiast obliczona Condition . Jeśli warunek ma wartość false, przejście zostanie anulowane, a Trigger działanie dla wszystkich przejść ze stanu zostanie ponownie zaplanowane. Jeśli istnieją inne przejścia, które współużytkują ten sam stan źródła co bieżące przejście, te Trigger akcje są również anulowane i ponownie anulowane. Condition Jeśli wynikiem jest truewartość , lub nie ma warunku, Exit wykonywana jest akcja stanu źródłowego, a następnie Action wykonywana jest operacja przejścia. Po zakończeniu kontrolka Action przechodzi do stanu Docelowego

Przejścia, które współużytkują wspólny wyzwalacz, są nazywane przejściami wyzwalacza współużytkowanego. Każde przejście w grupie udostępnionych przejść wyzwalacza ma ten sam wyzwalacz, ale unikatowy Condition i akcja. Aby dodać dodatkowe akcje do przejścia i utworzyć przejście udostępnione, kliknij okrąg wskazujący początek żądanego przejścia i przeciągnij go do żądanego stanu. Nowe przejście będzie współużytkowały ten sam wyzwalacz co początkowe przejście, ale będzie miało unikatowy warunek i akcję. Udostępnione przejścia można również utworzyć z poziomu projektanta przejścia, klikając pozycję Dodaj udostępnione przejście wyzwalacza w dolnej części projektanta przejścia, a następnie wybierając żądany stan docelowy z listy rozwijanej Dostępne stany, aby nawiązać połączenie .

Uwaga

Należy pamiętać, że jeśli Condition wartość przejścia zostanie obliczona na False wartość (lub wszystkie warunki przejścia współużytkowanego wyzwalacza zostanie obliczona na Falsewartość ), przejście nie nastąpi, a wszystkie wyzwalacze dla wszystkich przejść ze stanu zostaną ponownie anulowane.

Aby uzyskać więcej informacji na temat tworzenia przepływów pracy maszyny stanu, zobacz How to: Create a State Machine Workflow (Jak utworzyć przepływ pracy maszyny stanu), StateMachine Activity Projektant, State Activity Projektant, FinalState Activity Projektant and Transition Activity Projektant (Działanie stanu).

Terminologia dotycząca maszyny stanów

W tej sekcji zdefiniowano słownictwo maszyn stanowe używane w tym temacie.

Stan
Podstawowa jednostka, która komponuje maszynę stanu. Maszyna stanu może być w jednym stanie w dowolnym momencie.

Akcja wpisu
Działanie wykonywane podczas wprowadzania stanu

Akcja zakończenia
Działanie wykonywane podczas zamykania stanu

Przejście
Skierowana relacja między dwoma stanami reprezentującymi pełną odpowiedź maszyny stanu na wystąpienie zdarzenia określonego typu.

Przejście udostępnione
Przejście, które współudzieli stan źródła i wyzwalacz z co najmniej jednym przejściem, ale ma unikatowy warunek i akcję.

Wyzwalacz
Działanie wyzwalające, które powoduje przejście.

Stan
Ograniczenie, które musi zostać obliczone po true uruchomieniu wyzwalacza w celu ukończenia przejścia.

Akcja przejścia
Działanie wykonywane podczas wykonywania określonego przejścia.

Przejście warunkowe
Przejście z jawnym warunkiem.

Samodzielne przejście
Przejście, które przechodzi z stanu do samego siebie.

Stan początkowy
Stan reprezentujący punkt początkowy maszyny stanu.

Stan końcowy
Stan reprezentujący ukończenie maszyny stanu.

Zobacz też