问题:
使用WF (WF3)的状态机工作流的应用程序,通常要遇到一个问题:工作流的状态 (例如,一个订单处理工作流)与业务逻辑实体(例如,订单这个实体)状态的关联。
解决方案:
1. 最常想到的是在业务逻辑实体中添加一个字段来表示状态,例如OrderStatus: 0-New, 1-Paid, 2-Shipped。工作流执行到某个状态时,更新该实体的状态字段与当前工作流状态一致。
2. 直接使用工作流状态:StateMachineWorkflowActivity有一个实例属性CurrentWorkflowState表示当前的状态。那么工作流外部的业务逻辑如何得到这个状态值呢,有一个很讨巧的办法:StateMachineWorkflowActivity继承自StateActivity,所以可以直接放一个EventDriven活动在这个工作流本身上,这个EventDriven就可接收来自外部的获取状态信息的事件并返回状态信息。(这个EventDriven是一个独立的活动,不与其他状态活动交互)。
本文探讨了在使用WF3状态机工作流的应用程序中,如何解决工作流状态与业务实体状态之间的关联问题。提出了两种解决方案:一是在业务实体中添加状态字段,并在工作流执行时更新;二是通过EventDriven活动接收外部状态请求。
3592

被折叠的 条评论
为什么被折叠?



