您的位置:首页 > 其它

工作流类型简介

2009-01-14 09:53 190 查看
控制流程类型活动

Code活动:执行关联的代码,关键属性“ExecuteCode”。

Sequence:允许按顺序执行一组Activity。

IfElse:根据指定的条件执行包含的活动。

While:按指定的迭代次数执行包含的Activity。

Policy:根据一组关联的规则执行操作。

ConditionedActivityGroup:根据关联的事件/条件执行包含的Activity。只能在满足指定条件后,才会执行包含的Activity。

Replicator:通过创建指定数量的复制实例来执行包含的Activity。

SynchronizationScope在同步域中顺序执行所包含的Activity。

容器类型的符合活动,它可以为每个分支设置一个“排他”的标记“SynchronizationHandles”。

事件类型活动

HandleExternalEvent允许在工作流中接收事件。

依赖外部来触发事件的,

CallExternalMethod从工作流中调用外部方法。

Listen允许根据指定的延迟时间或事件执行所包含的Activity。

此活动每条分支之间都是平行关系,只要有一个分支监听到事件,其他分支就都不会被执行。

分支与分支之间是具有“排他”性的。此活动每条分支上的第一个子活动一定为事件类型的活动。

Delay将执行延后指定的一段时间。

事件类型活动,由自身来触发事件。

该活动可以触发工作流的“WorkflowIdled”事件,使工作流进入“idle”状态。

EventHandlingScope对子Activity的执行启用事件处理。

容器内的活动,每个分支都是由EventDriven容器类型的活动构成。

此活动是在其主活动运行结束前,它的所有事件的分支都可以被执行,不会出现“排他”的现象,该活动所监听的事件

都存放在“Event Handlers”视图里。

Parallel允许并行执行包含的Activity。

容器类型的活动,该活动的每条分支都是由Sequence活动构成的,在此活动运行时,只有每条分支全部执行完毕后该活动才结束,工作流

也才能执行Parallel活动的其他后续活动,否则工作流就将一直等待知道Parallel活动结束。此活动的每条分支之间的关系都是平行的,这里

的“平行”是指逻辑业务上的平行而在运行时都属于同一个线程。此活动被广泛运用于“会签”流程,例如某个文件要3个部门全部签字后才能

生效,那么这3各部门在该工作流程中就是平行的关系。

事务和异常处理类型活动

FaultHandler允许根据指定的异常执行包含的Activity。

在wf中同一个容器内某个活动在运行时发生了异常,那么该容器内位于它后面的所有活动将不能被执行。

Throw允许在工作流中引发异常。

如果容器没有对它内部子活动的异常进行捕捉,那么该容器后面的其他活动将不再被执行,反之容器后续的活动将继续执行。

   在程序运行时由于未知错误引发的异常被称为隐形异常,用户可以通过Throw活动在工作流中声明一个显性的异常并将它抛出,

   当异常发生时将会触发工作流运行时容器Runtime的“WorkflowTerminated”事件。

Compensate为支持长时间运行事务的作用域启用补偿。

此活动是一个顺序类型的容器。补偿也需要指定一个区域,在该区域内如果发生了某些异常情况,那么就可以通过Compensatable活动

   来指定该类型的异常应该执行哪个区域内的补偿措施,这个区域可以使用CoompensatableSequence活动来限定。

   在现实工作中工作流还需要对某些特殊情况下的业务逻辑进行处理,例如某厂商生产的物品发现了缺陷,那么就需要在工作流程

中设置一个召回的流程;某些公文写错了,正规的做法就是通过一个流程将其作废,而不是直接销毁;如果给客户发了一封错误

的邮件,那么能做的就是再发一封邮件告诉他正确的信息,而不能把客户收到的那份邮件删除。在wf中可以使用CompensatableSequence

活动和Compensatable活动来实现。

注意:此活动是对已经存在的结果进行补偿。

CompensatableSequence按具有补偿的序列执行一组活动。

CompensatableTransactionScope:在事务中按顺序执行包含的活动并支持补偿。

TransactionScope在事务中顺序执行所包含的Activity。

CompensatableTransactionScope在事务中按顺序执行包含的活动并支持补偿。

WebService和与WF相关的活动

InvokeWorkflow允许使用异步Excute执行指定工作流。

Termainate终止工作流的执行。

是结束工作流的活动,在执行时将触发工作流中的“WorkflowTerminated”事件

Suspend挂起工作流的执行。

是暂停工作流的活动,在执行时将触发工作流中的“WorkflowSuspended”事件

WebServiceInput允许在工作流内从WebService接收数据。

WebServiceOutput允许在工作流内向WebService发送数据。

InvokeWebService允许从工作流内部调用WebService。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: