具體的流程圖如下:
流程圖對應的xml檔案如下:
流程啟動跟蹤分析:
圖一:
圖二:
圖三:
圖四:
以上主要是跟蹤分析了,三個節點之間的流轉情況。
在流轉的時候需要注意以下兩個接口:
原子操作(atomicoperation)接口:
注意:
interpretableexecution接口:
單獨摘出來的兩個方法是圖一中:
上下文、原子操作、執行器實體三者互相調用的關鍵。
上圖的具體調用情況如下:
executionentity類中的:
performoperation函數中調用上下文commandcontext類中的:
performoperation函數調用原子操作(atomicoperation)接口中的void execute(interpretableexecution execution)來處理。
該處的處理分為兩種情況:
1、根據atomicoperation接口辨別來繼續進行流轉
(再次調用executionentity類中的performoperation(atomicoperation executionoperation)方法)
比如:
process_start=》process_start_initial=》activity_execute。。。。。。
具體可以參考本文圖一到圖四的代碼跟蹤中的辨別。
2、根據節點上的activitybehavior類進行不同的處理
activiti節點(開始、結束、任務、網關等等)都是activity類型的,隻是其挂的activitybehavior不同,通過不同的activitybehavior來實作相應的操作。