《WF编程》系列之46 第七章 事件驱动工作流
2010-10-01 08:20:51 来源:WEB开发网到目前为止,我们可以继续添加EventDriven活动到我们的工作流中。我们需要覆盖在bug生命期中的所有的事件和迁移。状态机的一个优点是,我们控制了哪个事件在哪个具体的状态下是合法的。例如,除了初始状态,我们不想要任何状态来处理BugOpened事件。我们还可以设计我们的状态机,从而在延迟状态中的bug将只会处理一个BugAssigned事件。下面的截图显示了我们的状态机,并在适当的位置具有所有的事件和迁移。
注意到,在上面的截图中,BugClosedState不需要处理任何事件。这个状态是完成状态,并且工作流将不会处理任何额外的事件。
StateInitialization和StateFinalization活动
我们可以拖动到State活动中的两个额外的活动是StateInitialization活动和StateFinalization活动。State活动可以具有一个StateInitialization活动和一个StateFinalization活动。
这两种活动都将顺次执行一组子活动。当状态机迁移到包括初始化活动的状态时,StateInitialization活动会运行。相反,只要状态机迁移到包括终结活动的状态之外,StateFinalization活动就会执行。使用这两个活动,我们可以在我们的状态机的状态中执行预处理和后事处理。
驱动状态机
开始一个状态机工作流与开始其它工作流没有什么不同。我们首先创建WorkflowRuntime类的一个实例。我们将需要运行时寄宿(host)一个ExternalDataExchangeService,这就会依次寄宿那些实现了IBugService接口的本地通信服务。第3章包括了本地通信服务,以及ExternalDataExchangeService的更多细节。
- ››WF 4.0 beta1中的跟踪机制
- ››WF 4.0的建模风格:顺序和Flowchart
- ››WF4.0 Beta1之旅(5):规则引擎的变化
- ››WF 4.0 beta1活动概览(1):Procedural
- ››WF4.0 Beta1之旅(4):Bookmark的使用
- ››WF4.0 Beta1之旅:基本介绍
- ››WF4.0 Beta1之旅(2):异常处理
- ››WF4.0 Beta1之旅(3):全新的FlowChart
- ››WF 应用场景指南: SharePoint 与工作流(上)
- ››WF 应用场景指南: 展现流(Presentation Flow)
- ››WF单元测试系列1:测试基本的Activity
- ››WF单元测试系列2:简单测试Activity的行为
更多精彩
赞助商链接