版權聲明:轉載注明出處就OK的說,有些東西會轉載,都會注明的說= =如果有冒犯麻煩見諒 https://blog.csdn.net/Pan1458689676/article/details/82731811
剩下的一些元件
主要講解Gateway,Connection,Artifacts以及Container部分的用法
關于網關前面多多少少都有涉及。分為四種網關。下面将逐一描述。前三種網關主要以流程變量的方式做判斷。
單行網關會執行第一個符合條件的
【官網典例】
并行網關所有通路都執行。類是java的fork join最後會聚合再執行後續步驟。
包容網關所有通路進行判斷通過的話通路全部會執行。
事件網關可以簡單了解為與捕獲中間事件為條件的單行網關。Activiti不支援基于事件的網關後接收任務。
- 基于事件的網關必須具有兩個或更多傳出序列流。
- 基于事件的網關隻能連接配接到intermediateCatchEvent僅類型的元素。
- 一個intermediateCatchEvent連接配接到一個基于事件的網關必須有一個單一的進入順序流。
簡而言之就是普通的連接配接線
簡而言之就是跨泳池的連接配接線
一般可以預設為是補償的事件連接配接線或者注釋的連接配接線,叫做關聯。
簡單來說就是注釋
容器的意思
泳池與泳道,主要用于流程結構的劃分。
簡單說就是,由事件出發的子流程
BPMN 2.0區分了正常子流程(通常也稱為嵌入式子流程)和呼叫活動(看起來非常相似)。從概念的角度來看,當流程執行到達活動時,兩者都将調用子流程。
不同之處在于,調用活動引用了流程定義外部的流程,而子流程嵌入在原始流程定義中。調用活動的主要用例是具有可從多個其他流程定義調用的可重用流程定義。
當程序執行到達調用活動時,将建立一個新執行,該執行是到達調用活動的執行的子執行。然後,該子執行用于執行子程序,可能在正常程序中建立并行子執行。超級執行一直等到子程序完全結束,然後繼續原始程序。
【子流程】
子流程隻能有一個無啟動事件,不允許其他啟動事件類型。子流程必須至少有一個結束事件。請注意,BPMN 2.0規範允許省略子流程中的開始和結束事件,但目前的Activiti實作不支援此操作。
SequenceFlow不能跨越子流程邊界。
【調用活動】
調用活動在Task中
官網demo
事務子流程是嵌入式子流程,可用于将多個活動分組到事務。事務是一個邏輯工作單元,它允許對一組單獨的活動進行分組,進而使它們共同成功或失敗。
執行的可能有三種不同的結果:
如果執行既未被取消也未被危險終止,則執行成功。如果事務子程序成功,則使用傳出序列流保留它。如果在此過程中稍後抛出補償事件,則可以補償執行成功的事務。
事務是取消,如果執行到達取消結束事件。在這種情況下,所有執行都将被終止并删除。然後将單個剩餘執行設定為取消邊界事件,進而觸發補償。在補償完成之後,使用取消邊界事件的輸出序列流來保留事務子過程。
如果抛出錯誤事件,則事務以危險結束,而不會在事務子流程的範圍内捕獲。(如果錯誤發生在事務子程序的邊界上,這也适用。)在這種情況下,不執行補償。
官網Demo
雖然沒有什麼人看,也算是按照自己期望的把activiti知識都過了一遍,基本的常用Task都已經在文章裡面涉及到了,也都有提及。也算是告一段落了。