Activiti工作流框架學習(十)

BPMN繪圖控件的相關介紹:

  • 連線
  • 排他網關
  • 並行網關
  • 開始活動節點
  • 接收活動(receiveTask,即等待活動)
  • 用戶任務(userTask,即用戶操作的任務)

一、連線
1.1 流程圖

注意:如果將流程圖放置在和java類相同的路徑,需要配置



1.2 部署流程定義+啓動流程實例


1.3 查詢我的個人任務


1.4 完成任務

說明:
1)使用流程變量,設置連線需要和流程變量的名稱message,並設置流程變量的值
對應:
流程會按照指定的連線完成任務。

1.5 總結
1、一個活動中可以指定一個或多個SequenceFlow(Start中有一個,End中沒有)。
* 開始活動中有一個SequenceFlow
* 結束活動中沒有SequenceFlow
* 其他活動中有1條或多條SequenceFlow

2、如果只有一個,則可以不使用流程變量設置codition的名稱
如果有多個,則需要使用流程變量設置codition的名稱,message表示流程變量的名稱,‘不重要’表示流程變量的值,${}中間的內容要使用boolean類型的表達式,
用來判斷應該執行的連線。


二、排他網關(ExclusiveGateWay)

2.1 流程圖

2.2 部署流程定義+啓動流程實例

2.3 查詢我的個人任務


2.4 完成我的個人任務

說明:
1)一個排他網關對應一個以上的順序流

2)由排他網關流出的順序流都有個conditionExpression元素,在內部維護返回boolean類型的決策結果

3)決策網關只會返回一條結果,當流程執行到排他網關時,流程引擎會自動檢索網關出口,從上到下檢索如果發現第一條決策結果true或者沒有設置條件的(默認
爲成立),則流出

4)如果沒有任何一個出口符合條件,則拋出異常

5)使用流程變量,設置連線的條件,並按照連線的條件執行工作流,如果沒有條件符合的條件,則以默認的連線離開,例如:
則執行連線:

如果使用流程變量設置

則執行連線:


三、並行網關(paralleGateWay)

3.1 流程圖

3.2 部署流程定義+啓動流程實例

3.3 查詢我的個人任務


3.4 完成我的個人任務

說明:
1)一個流程中流程實例只有1個,執行對象有多個

2)並行網關的功能是基於進入和外出的順序流的:
分支(fork):並行後的所有外出順序流,爲每個順序流都創建一個併發分支。
匯聚(join):所有到達並行網關,在此等待的進入分支,直到所有進入順序流的分支都到達以後,流程就會通過匯聚網關。

3)並行網關的進入和外出都是使用相同節點標識

4)如果同一個並行網關有多個進入和多個外出順序流,它就同時具有分支和匯聚功能。這時,網關會先匯聚所有進入的順序流,然後再切分成多個並行分支

5)並行網關不會解析條件。即使順序流中定義了條件,也會被忽略。

6)並行網關不需要是“平衡的”(比如:對應並行網關的進入和外出節點數目不一定相等),如圖:


四、開始活動節點

4.1 流程圖

4.2 部署流程定義+啓動流程實例+查詢流程實例+查詢歷史流程實例


4.3 總結
1)結束節點沒有出口
2)其他節點有一個或多個出口
如果有一個出口,則代表是一個單線流程;
如果有多個出口,則代表是開啓併發流程;


五、接收活動(receiveTask,即等待活動)

5.1 流程圖


5.2 部署流程定義+啓動流程實例+執行流程實例+查詢流程實例


說明:
1)當前任務(一般指機器自動完成,但需要耗費一定時間的工作)完成後,向後推移流程,可以調用runtimeService.signal(executionId),傳遞接收執行對象的id.


六、用戶任務(userTask,即用戶操作的任務)

6.1 個人任務
查看上一章節

6.2 組任務

查看上一章節

發佈了436 篇原創文章 · 獲贊 121 · 訪問量 29萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章