使用状态机工作流
不像顺序工作流,根据预定义的模式来构造它的活动,一个状态机工作将它的活动组织灾一个有限状态机里。下图展示了一个由WF工作流设计器创建的简单状态机工作流。如图所示,开发者定义了一组状态和能够在这些状态间触发事务的事件。
像这样组织活动的工作流的好处是:当你无法预先知道一个精确的事件流顺序时,比如事件驱动的业务处理流程,或者当可能性的数量无法通过定义所有的路径来定义时。这个最基本的例子针对的是工作中的人而不仅仅是应用系统。状态机工作流可以很自由的省掉一些步骤(比如如果一个好的客户,我们会省掉他的信用核对工作),在业务流程里任意跳转到任何步骤,或者在任何时候取消掉业务流程(比如说,客户在某一个节点上取消了订单。) 状态机工作流也可以提供一种方式定义如何匹配一些组织结构如何思考和他们业务流程处理文档的工作流。像这个例子所说的,将工作流定义成这种方式能够帮助开发人员和商务人员更加高效的一起工作。
基础活动类库包含了一些特地为其设计的活动来创建工作流状态机。如下所述:
状态:在工作流状态机里表达一个状态。
事件驱动:定义一个包含了很多活动的活动序列,在一个特定的状态里当一个特定的事件接收时执行。