工作流构造块的介绍:具体如下(大家也可以到MSDN上得到他):
表 2. Windows Workflow Foundation 构造块 |
|
活动 |
说明 |
Code |
使您能够向工作流中添加 Microsoft Visual Basic .NET 或 C# 代码以执行自定义操作。但是,这些代码不应该用对 Web 服务等外部资源的依赖性来阻塞工作流。 |
Compensate |
使您能够在发生错误时调用代码来撤消或者补偿已经由工作流执行的操作。通常,对于现在已被取消的操作,您可能希望向先前已经获得成功通知的用户发送电子邮件。 |
ConditionedActivityGroup (CAG) |
使您的工作流能够基于特定于每个活动的准则有条件地执行一组子活动,直到针对 CAG 整体满足完成条件。子活动相互独立并可能并行执行。 |
Delay |
使您能够控制工作流的定时以及将延迟内置到工作流。您可以在 Delay 活动上提供超时,以便工作流在恢复执行之前暂停。 |
EventDriven |
代表一系列其执行由事件触发的活动。第一个子活动必须能够等待外部事件。可行的首要子活动是 EventSink 和 Delay。在这种情况下,Delay 用作超时。 |
EventSink |
在向 WorkflowRuntime 注册的数据交换服务引发指定事件时,使工作流能够从该服务接收数据。 |
ExceptionHandler |
使您能够处理指定类型的异常。ExceptionHandler 活动是其他活动的包装,在指定的异常发生时,这些活动实际执行所需的任何工作。可根据情况指定一个用于存储异常的本地变量,并且使其可以在代码隐藏中使用。 |
IfElse |
使您的工作流能够有条件地执行多个可供选择的分支之一。可在每个分支上放置一个条件,而条件为真的第一个分支将执行。无需在最后一个分支上放置条件,因为它被视为“else”分支。 |
InvokeMethod |
使您的工作流能够调用接口上的方法,以便将消息从工作流发送到向 WorkflowRuntime 注册的数据交换服务。 |
InvokeWebService |
使您的工作流能够调用 Web 服务方法。您需要指定要使用的代理类(使用 WSDL),以及您想要调用的方法的名称。同步和异步调用都受到支持。 |
InvokeWorkflow |
使您的工作流能够调用或启动另一个工作流(可达到任意深度)。例如,被调用的工作流可以调用第三个工作流,该工作流又可以调用第四个工作流,等等。递归调用不受支持。受支持的调用模型是发后不理。 |
Listen |
使工作流能够等待(可能存在的)多个事件之一,或者在指定的超时间隔之后停止等待,并且基于结果分支。可向每个分支中添加一个或多个由事件驱动的活动。只有第一个满足条件的分支被执行;其他分支都不会运行。 |
Parallel |
使您的工作流能够相互独立地执行两个或更多个操作。该活动在继续执行之前会等待这些操作终止。 |
Policy |
使您能够表示或执行规则集合。该活动不在工具箱中;要访问它的功能,必须创建自定义活动并使用派生。 |
Replicator |
使您的工作流能够创建给定活动的任意多个实例,并且顺序或同时执行它们。 |
SelectData |
使您的工作流能够通过在外部数据源对象上定义的方法查询外部数据。当触发 SelectData 活动时,关联的方法将在宿主线程内部执行。该方法返回的值被传递给工作流。 |
Sequence |
使您能够协调一组子活动的连续执行。该序列在最后一个子活动完成之后完成。 |
SetState |
使您的状态机工作流能够指定向新状态的转换。 |
State |
表示状态机工作流中的状态。 |
StateInitialization |
在 State 活动中,用作在状态转换时执行的子活动的容器。 |
Suspend |
挂起工作流的操作,以便能够在发生某个错误条件时进行干预。当工作流实例挂起时,将记录错误。可指定一个消息字符串来帮助管理员诊断发生了什么事情。与当前实例关联的所有状态信息都被保存,并且这些信息会在管理员继续执行时恢复。 |
Terminate |
使您能够在发生任何异常情况时立即结束工作流的操作。如果是在 Parallel 活动内部调用,则所有分支都被突然终止,而无论它们的当前状态如何。当工作流终止时,会记录错误,并提供一个消息以帮助管理员弄清楚发生了什么事情。 |
Throw |
使您能够引发指定类型的异常。使用该活动等效于在用户代码中引发异常的代码处理程序。该活动是引发 .NET 异常的声明性方式。 |
TransactionalContext |
事务上下文 是用于对活动进行分组的块。该活动主要用于事务性执行、补偿和异常处理,可以根据情况进行同步。通过同步事务性上下文,可确保对活动中共享数据的任何访问都将正确地序列化。 |
UpdateData |
使您的工作流能够通过在外部数据源对象上定义的方法更新数据存储区。当 UpdateData 活动被触发时,关联的方法将在宿主线程内部执行。 |
WaitForData |
使您的工作流能够从外部数据源对象接收信息。当传入的数据修改绑定数据源的状态时,该活动被触发。传入的数据是通过绑定数据源服务接收的。 |
WaitForQuery |
使外部应用程序能够在您的工作流中查询数据。该活动将在从宿主收到查询之前一直等待。来自外部应用程序的查询使用绑定数据源服务上的方法提交给工作流。 |
WebServiceReceive |
使作为 Web 服务本身公开的工作流能够接收 Web 服务请求。 |
WebServiceResponse |
使作为 Web 服务本身公开的工作流能够响应 Web 服务请求。 |
While |
使您的工作流能够在一个条件被满足时执行一个或多个活动。在每次迭代之前,都评估该条件。如果为真,则所有子活动都会执行;否则,该活动完成。可指定声明性条件或代码条件。 |