activiti學習之pvm篇


 

PVM是做什么的?

 

PVM主要就是負責流程整個運行期的執行、流轉等所有運行過程。activiti對pvm的實現都放在org.activiti.engine.impl.pvm包里。

 

 

PVM何時被調用?

 

PVM從啟動開始,一直到流程的結束,包括啟動、停止、審批流程等有關於改變流程的操作,都要調用pvm來實現。

 

 

 

activiti是通過bpmn2.0規范來設計,每個流程包括開始節點、結束節點、Task節點、以及連接線走向和各種way。

 

a.PvmActivity:活動節點,在流程圖上對應開始節點、結束節點、各種任務節點、各種菱形代表的聚合節點。

 

b.PvmTransition:連接線。

 

c.PvmProcessDefinition:流程定義(全局)。

 

pvm運行期的操作類,都放在org.activiti.engine.impl.pvm.runtime包中。

 

activiti中對流程的操作都封裝為特定的操作(Operation),如流程啟動、流程結束、任務啟動、任務執行、任務結束等。每個具體的操作控制每個具體點流程運行邏輯。如任務啟動操作行為會觸發監聽器、流程任務等。

 

這 里的操作行為是針對於通用的流程的運轉。而流程的任務分為多種類型,如Usertask/mailtask/ReceiveTask/以及子流程等。根據 類型的不同,行為也是不同的,activiti中是這樣設計的:運用委托模式,將每種類型的行為封裝成一個單獨的行為類,在執行不同的類型任務是,將該類 型的行為對象賦值給ActivityImpl,ActivityImpl運行時,將行為委托給這個行為對象,行為對象在調用pvm的操作,就完成了流程的 運轉。

 

pvm的委托行為總接口都放在org.activiti.engine.impl.pvm.delegate包中。

acitiviti 具體的任務委托行為類都放在org.activiti.engine.impl.bpmn.behavior包中

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM