一、狀態機工作流簡介
狀態機工作流由一組狀態組成。一個狀態被指示為初始狀態。每個狀態都可以接收一組特定事件。視事件而定,可以轉換到另一個狀態。狀態機工作流可以有最終狀態。當轉換到最終狀態時,工作流將完成。
[一]狀態機設計器視圖
狀態機設計器是一種自由形式的設計器,這意味著可以在設計圖面上自由移動活動。
狀態機設計器有兩個視圖: (1)“狀態”視圖(2)“事件驅動”視圖
狀態視圖顯示狀態活動和可包含在狀態活動內的事件驅動的活動。在此視圖中,從一個狀態到另一個狀態的轉換是由直線表示的,這些直線從一個狀態中的事件驅動活動延伸到另一個狀態。
也可以通過自己繪制直線來創建一個狀態活動到另一個狀態活動的轉換。若要繪制轉換,請你選擇事件驅動的活動,然後選擇活動上的某個手柄並拖動該手柄。此操作將繪制直線。此直線隨後將連接到目標狀態,指示狀態之間的轉換。如下圖所示:
拖動上圖狀態活動內部的事件驅動活動的手柄,拖動到下面的狀態活動上即可,得到如下圖所示的結果:
若要訪問事件驅動的視圖,請雙擊事件驅動的活動。出現的設計器與順序工作流設計器很像。在設計器的頂部,導航欄顯示直到所顯示事件驅動活動為止的活動層次結構。可以通過單擊顯示的層次結構中的任意元素導航回狀態視圖。如果已在狀態視圖中繪制了從一個狀態到另一個狀態的轉換,並且正在顯示該活動的事件驅動視圖,則會為您將一個已設置狀態活動添加到事件驅動的活動。如果更改已設置狀態活動的屬性,它將反映到狀態視圖中。
[二]狀態機工作流活動
下表描述了狀態機工作流設計器中使用的關鍵活動。
工具箱名稱 活動 說明 State StateActivity 表示狀態機中的一個狀態;可能包含其他 StateActivity 活動。有關更多信息,請參見 使用 StateActivity 活動(可能為英文網頁)。 SetState SetStateActivity 指定到新狀態的轉換。有關更多信息,請參見 使用 SetStateActivity 活動(可能為英文網頁)。 StateInitialization StateInitializationActivity 在進入某個狀態時執行;可能包含其他活動。有關更多信息,請參見 使用 StateInitialization 活動(可能為英文網頁)。 StateFinalization StateFinalizationActivity 在離開 StateActivity 活動時執行包含的活動。有關更多信息,請參見 使用 StateFinalizationActivity 活動(可能為英文網頁)。 EventDriven EventDrivenActivity 用於依賴於外部事件開始執行的狀態。EventDrivenActivity 活動必須具有實現 IEventActivity 接口作為第一個子活動的活動。有關更多信息,請參見 使用 EventDrivenActivity 活動(可能為英文網頁)。