也谈WWF State Machine Workflow (一)

用例场景:  
      r_myFlow.PNG
定义好上述的状态机工作流(State Machine Workflow)以后,问题接踵而至:
1.如何定义每个状态中包含的事件?
2.如何运行这支流程?
3.我的流程(状态流转)发生变化时候,需要修改的地方有哪些?
等等,问题好多,让我们一个个解决吧!

问题1:
每个状态(终止状态除外)必须提供至少一个以上的事件(System.Workflow.Activities.EventDrivenActivity)才能保证状态的流转,每个EventDrivenActivity包含一个HandleExternalEvent和一个SetState,SetState拥有TargetStateName成员属性控制目标流转状态,而HandleExternalEvent必须指定接口类型(InterfaceType)和事件名称(EventName,来自于InterfaceType提供的Event对象),事件定义参考如下:

o_mystate.PNGr_handleProperties.PNG
而这里的InterfaceType是需要我们自己定义的接口,暂且我们叫做localservices.ImyWFService,接口又定义了Event CampaignCreated

using System;
using System.Workflow.Activities;

namespace LocalServices
{
    [ExternalDataExchange]
    
public interface ImyWFService
    
{
        
event EventHandler<myWFEventArgs> CampaignCreated;
        
event EventHandler<myWFEventArgs> CampaignSubmited;
    }

}

<未完待续....>

 


posted on 2006-05-31 13:58  webmote  阅读(500)  评论(1编辑  收藏  举报

导航