訂購狀態機器範例

Download sample

訂購狀態機器範例是使用狀態機器工作流程來實作訂單處理方案的應用程式。

在這種類型的應用程式中,訂單可能會在完成之前經歷數種狀態。在此範例中,共有四種定義的狀態:

  • WaitingForOrderState

  • OrderOpenState

  • OrderProcessedState

  • OrderCompletedState

在此訂單系統中,也有根據訂單的目前狀態,指定能夠發生何種訂單事件的規則。例如,已開啟的訂單可以更新、處理、取消或出貨。不過,已處理的訂單則是只能更新或出貨,而不能夠取消。當事件發生時,狀態機器工作流程即可選擇性地將訂單轉換成新的狀態。例如,當訂單開啟並發生 OrderShipped 事件時,狀態機器工作流程便會將訂單轉換成已完成狀態。

若要建置範例

  1. 按一下此主題中的 [下載範例] 來下載範例。

    這樣會將範例專案擷取到本機硬碟上。

  2. 按一下 [開始],並依序指向 [程式集] 和 [Microsoft Windows SDK],再按一下 [CMD 殼層]。

  3. 移至範例的來源目錄。

  4. 在命令提示字元上,輸入 MSBUILD <Solution file name>

若要執行範例

  1. 在 [SDK 命令提示字元] 視窗中,執行 OrderApplication\bin\debug 資料夾 (若是 VB 版本的範例,則是 OrderApplication\bin 資料夾) 中的 .exe 檔案,該資料夾位於此範例的主要資料夾之下。

  2. 輸入 [OrderId] 欄位的值,然後按一下 [已建立的訂單] 建立工作流程的新執行個體,並引發 OrderCreated 事件。

    您可以重複此程序,以建立數個訂單狀態機器工作流程的執行個體。

  3. 當您建立訂單時,應該會看到每筆記錄的 [訂單狀態] 值從 WaitingForOrderState 快速地變更為 OrderOpenState。

  4. 當您選取記錄時,應該會注意到只有 [已處理的訂單] 和 [已更新的訂單] 按鈕才啟用。

  5. 按一下 [已處理的訂單] 即可對工作流程引發 OrderProcessed 事件。

  6. 經過數秒後,您應該會注意到 [訂單狀態] 已變更為 OrderProcessedState,而且在選取記錄時,只有 [已更新的訂單]、[已取消的訂單] 及 [已出貨的訂單] 按鈕才會啟用。

請參閱

其他資源

Tutorial: Create a State Machine Workflow
State Machine Workflows
Windows Workflow Foundation 範例

Footer image

Copyright © 2007 by Microsoft Corporation. All rights reserved.