控制流程類型活動

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。