wf提供執行時修改流程例項的功能,事實上可以在流程執行過程中增加、修改和刪除流程步驟,甚至是在流程執行的時候再增加外部的流程。這個功能解決了很多流程引擎不能解決的問題,當使用者審批到某個步驟時,突然想改變流程,怎麼辦呢?原來的方式是重新定義流程,但其他使用者想按原來的流程走完,這樣可能就要定義兩個不同的流程。wf提供執行時修改流程例項的功能將徹底的解決這個問題,使用者可以在執行時修改屬於他自己的例項,跟其他使用者沒有關係,流程定義也不用修改。
接下來我用裝置申請審批流程中的例項來說明怎麼在執行時增加流程步驟,假如裝置申請單到了副總理處,副總經理發現金額比較大,需要總經理審批。副總經理可以自己增加乙個步驟,原來的流程不用變化。這裡有兩個技術要點:
(1)自定義流程步驟activity。自定義的流程步驟可以是乙個activity,也可以是乙個activity的組合,還可以使另外乙個流程,非常靈活。這裡定義的是包括乙個外部事件activity和外部方法activity的組合,其中外部事件activity用於觸發(喚起)流程,外部方法activity執行特定的操作。
(2)執行時增加流程步驟。workflowchanges物件用於修改流程步驟,修改步驟之前需要掛起流程例項,修改之後重啟即可。
//
掛起workflowinstance.suspend(
"suspending to add step");
//get workflowchanges
activity workflowinstancedefinition
=workflowinstance.getworkflowdefinition();
workflowchanges workflowchangestomake
=new
workflowchanges(workflowinstancedefinition);
//setup to invoke newstepactivity type
system.workflow.componentmodel.activity addactivity
=new
newstepactivity();
//insert activity to index 5
workflowchangestomake.transientworkflow.activities.insert(
5, addactivity);
////重啟
workflowinstance.resume();
Wcf執行時執行流程分析
以前寫過乙個mvc執行流程的分析的文章 使用一些自定義的 埋點方式來解析mvc框架顳部的執行過程。今天看到乙個老外寫了一篇不錯的wcf文章,我整理了一下它的 為每乙個方法加上了msdn中標註的中文注釋,大家可以通過這個例子來學習wcf的擴充套件以及了解wcf框架內部的執行流程 注意 1 藍色的代表服...
python 裝飾器 執行時動態增加功能
定義 在不改變原有函式的情況下,增加額外的功能。其返回值也是乙個python函式。裝飾函式,用於在已經定義好的某乙個函式 或 段 使用時,輸入或者操作自己想要的資料。乙個已有的 defhello print word 函式物件中,可以拿到函式名字的乙個屬性是 name 注意這裡是前後兩個下劃線 na...
執行時異常
常見的幾種如下 nullpointerexception 空指標引用異常 classcastexception 型別強制轉換異常。illegalargumentexception 傳遞非法引數異常。arithmeticexception 算術運算異常 arraystoreexception 向陣列中...