“订单状态机”示例
订单状态机示例是一个应用程序,该应用程序通过使用状态机工作流来实现订单履行解决方案。
在此类型的应用程序中,订单在其完成之前可能会经过若干种状态。 对于此示例,有四种定义的状态:
WaitingForOrderState
OrderOpenState
OrderProcessedState
OrderCompletedState
此订单系统中还有一些规则,这些规则指定对于订单可能发生的事件(具体情况视订单的当前状态而定)。 例如,可以更新、处理、取消或发运打开的订单。 但是,对于已处理的订单,则只能更新或发运,而不能取消。 在事件发生时,状态机工作流可以根据情况将订单转换为新状态。 例如,如果订单处于打开状态并且发生了 OrderShipped 事件,状态机工作流将会转换订单的已完成状态。
生成示例
通过单击本主题中的**“下载示例”**来下载该示例。
这会将示例项目提取到本地硬盘。
单击**“开始”,依次指向“程序”和“Microsoft Windows SDK”,然后单击“CMD 外壳”[CMD Shell]**。
转到示例的源目录。
在命令提示符处键入 MSBUILD <解决方案文件名>。
运行示例
在 SDK 命令提示窗口中,运行 OrderApplication\bin\debug 文件夹(对于该示例的 VB 版本为 OrderApplication\bin 文件夹)中的 .exe 文件,该文件夹位于该示例的主文件夹下。
在**“OrderId”(订单 ID)字段中输入值,然后单击“Order Created”(已创建订单)**创建工作流的新实例,并引发 OrderCreated 事件。
可以重复此过程以创建“订单”状态机工作流的若干个实例。
创建了订单后,您应会看到每条记录的**“Order State”(订单状态)**值从 WaitingForOrderState 快速变为 OrderOpenState。
选择了记录后,您应会注意到只有**“Order Updated”(已更新订单)和“Order Processed”(已处理订单)**按钮处于启用状态。
单击**“Order Processed”(已处理订单)**将 OrderProcessed 事件引发到工作流。
几秒钟后,您应会注意到**“Order State”(订单状态)已更改为 OrderProcessedState,并且,在选择了记录后,只有“Order Updated”(已更新订单)、“Order Canceled”(已取消订单)和“Order Shipped”(已发运订单)**按钮处于启用状态。
请参见
其他资源
Tutorial: Create a State Machine Workflow
State Machine Workflows
Windows Workflow Foundation 示例
版权所有 (C) 2007 Microsoft Corporation。保留所有权利。