“订单状态机”示例

Download sample

订单状态机示例是一个应用程序,该应用程序通过使用状态机工作流来实现订单履行解决方案。

在此类型的应用程序中,订单在其完成之前可能会经过若干种状态。 对于此示例,有四种定义的状态:

  • WaitingForOrderState

  • OrderOpenState

  • OrderProcessedState

  • OrderCompletedState

此订单系统中还有一些规则,这些规则指定对于订单可能发生的事件(具体情况视订单的当前状态而定)。 例如,可以更新、处理、取消或发运打开的订单。 但是,对于已处理的订单,则只能更新或发运,而不能取消。 在事件发生时,状态机工作流可以根据情况将订单转换为新状态。 例如,如果订单处于打开状态并且发生了 OrderShipped 事件,状态机工作流将会转换订单的已完成状态。

生成示例

  1. 通过单击本主题中的**“下载示例”**来下载该示例。

    这会将示例项目提取到本地硬盘。

  2. 单击**“开始”,依次指向“程序”“Microsoft Windows SDK”,然后单击“CMD 外壳”[CMD Shell]**。

  3. 转到示例的源目录。

  4. 在命令提示符处键入 MSBUILD <解决方案文件名>

运行示例

  1. 在 SDK 命令提示窗口中,运行 OrderApplication\bin\debug 文件夹(对于该示例的 VB 版本为 OrderApplication\bin 文件夹)中的 .exe 文件,该文件夹位于该示例的主文件夹下。

  2. 在**“OrderId”(订单 ID)字段中输入值,然后单击“Order Created”(已创建订单)**创建工作流的新实例,并引发 OrderCreated 事件。

    可以重复此过程以创建“订单”状态机工作流的若干个实例。

  3. 创建了订单后,您应会看到每条记录的**“Order State”(订单状态)**值从 WaitingForOrderState 快速变为 OrderOpenState。

  4. 选择了记录后,您应会注意到只有**“Order Updated”(已更新订单)“Order Processed”(已处理订单)**按钮处于启用状态。

  5. 单击**“Order Processed”(已处理订单)**将 OrderProcessed 事件引发到工作流。

  6. 几秒钟后,您应会注意到**“Order State”(订单状态)已更改为 OrderProcessedState,并且,在选择了记录后,只有“Order Updated”(已更新订单)“Order Canceled”(已取消订单)“Order Shipped”(已发运订单)**按钮处于启用状态。

请参见

其他资源

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

Footer image

版权所有 (C) 2007 Microsoft Corporation。保留所有权利。