Activiti 6.x【12】剩下的一些組件

剩下的一些組件


主要講解Gateway,Connection,Artifacts以及Container部分的用法

Gateway

這裏寫圖片描述

關於網關前面多多少少都有涉及。分爲四種網關。下面將逐一描述。前三種網關主要以流程變量的方式做判斷。

這裏寫圖片描述

ExclusiveGateway

單行網關會執行第一個符合條件的

【官網典例】
這裏寫圖片描述

ParallelGateway

並行網關所有通路都執行。類是java的fork join最後會聚合再執行後續步驟。

【官網典例】
這裏寫圖片描述

InclusiveGateway

包容網關所有通路進行判斷通過的話通路全部會執行。

【官網典例】
這裏寫圖片描述

EventGateway

事件網關可以簡單理解爲與捕獲中間事件爲條件的單行網關。Activiti不支持基於事件的網關後接收任務。

  • 基於事件的網關必須具有兩個或更多傳出序列流。
  • 基於事件的網關只能連接到intermediateCatchEvent僅類型的元素。
  • 一個intermediateCatchEvent連接到一個基於事件的網關必須有一個單一的進入順序流。

【官網典例】

這裏寫圖片描述

Connection

這裏寫圖片描述

SequenceFlow

簡而言之就是普通的連接線

MessageFlow

簡而言之就是跨泳池的連接線

這裏寫圖片描述

Association

一般可以默認爲是補償的事件連接線或者註釋的連接線,叫做關聯。
這裏寫圖片描述

Artifacts

這裏寫圖片描述

Annotation

簡單來說就是註釋

這裏寫圖片描述

Container

容器的意思

這裏寫圖片描述

Pool+Lane

泳池與泳道,主要用於流程結構的劃分。

這裏寫圖片描述

EventSubProcess

簡單說就是,由事件出發的子流程

這裏寫圖片描述

SubProcess

BPMN 2.0區分了常規子流程(通常也稱爲嵌入式子流程)和呼叫活動(看起來非常相似)。從概念的角度來看,當流程執行到達活動時,兩者都將調用子流程。

不同之處在於,調用活動引用了流程定義外部的流程,而子流程嵌入在原始流程定義中。調用活動的主要用例是具有可從多個其他流程定義調用的可重用流程定義。

當進程執行到達調用活動時,將創建一個新執行,該執行是到達調用活動的執行的子執行。然後,該子執行用於執行子進程,可能在常規進程中創建並行子執行。超級執行一直等到子進程完全結束,然後繼續原始進程。

【子流程】

子流程只能有一個無啓動事件,不允許其他啓動事件類型。子流程必須至少有一個結束事件。請注意,BPMN 2.0規範允許省略子流程中的開始和結束事件,但當前的Activiti實現不支持此操作。

SequenceFlow不能跨越子流程邊界。

這裏寫圖片描述

【調用活動】

調用活動在Task中

這裏寫圖片描述這裏寫圖片描述

官網demo
這裏寫圖片描述

Transaction

事務子流程是嵌入式子流程,可用於將多個活動分組到事務。事務是一個邏輯工作單元,它允許對一組單獨的活動進行分組,從而使它們共同成功或失敗。

執行的可能有三種不同的結果:

如果執行既未被取消也未被危險終止,則執行成功。如果事務子進程成功,則使用傳出序列流保留它。如果在此過程中稍後拋出補償事件,則可以補償執行成功的事務。

事務是取消,如果執行到達取消結束事件。在這種情況下,所有執行都將被終止並刪除。然後將單個剩餘執行設置爲取消邊界事件,從而觸發補償。在補償完成之後,使用取消邊界事件的輸出序列流來保留事務子過程。

如果拋出錯誤事件,則事務以危險結束,而不會在事務子流程的範圍內捕獲。(如果錯誤發生在事務子進程的邊界上,這也適用。)在這種情況下,不執行補償。

官網Demo

這裏寫圖片描述

結語

雖然沒有什麼人看,也算是按照自己期望的把activiti知識都過了一遍,基本的常用Task都已經在帖子裏面涉及到了,也都有提及。也算是告一段落了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章