本文重點介紹BPM業務流程管理中常常用到概念和術語,這些概念同樣適用于JBPM、Activiti、Flowable、Camunda等主流的開源工作流引擎。
一、BPM模型符號協議
1、BPMN (業務流程模型和標記法)
BPMN:業務流程模型和標記法(BPMN, Business Process Model and Notation)是一套圖形化表示法,用于以業務流程模型詳細說明各種業務流程。它最初由業務流程管理倡議組織(BPMI, Business Process Management Initiative)開發,名稱為"Business Process Modeling Notation",即“業務流程建模標記法”。
2、CMMN (案例管理模型符號)
Case Management Model Notation 案例管理模型符號。CMMN是一種圖形符號,用于捕獲基于處理需要各種活動的案例的工作方法,這些活動可能以不可預測的順序執行以響應不斷變化的情況。使用以事件為中心的方法和案例文件的概念,CMMN擴展了可以用BPMN建模的界限,包括結構化工作量減少和知識工作者推動的工作量。使用BPMN和CMMN的組合允許用戶覆蓋更廣泛的工作方法。
3、DMN(決策模型符號)
DMN是決策模型和符號(Decision Model and Notation)的英文縮寫,是由BMN背后的組織OMG管理的一個標準。DMN 是一種用于精確規范業務決策和業務規則的建模語言和符號。DMN 旨在與 BPMN 和/或 CMMN 一起工作,提供一種機制來對與流程和案例相關的決策進行建模。雖然 BPMN、CMMN 和 DMN 可以獨立使用,但它們經過精心設計以相互補充。BPMN、CMMN和DMN真正構成了流程改進標準的“三冠王”。
二、流程引擎相關術語
1、流程定義(Process Definition)
Process Definition即流程定義,指通過建模生成的一個符合BPMN規范的完整流程模型定義文件。Process Definition定義了流程的結構,或者說定義了業務活動的執行過程。Camunda bpm使用bpmn2.0作為其流程定義的主要建模語言。
2、流向/順序流(Flow):
順序流是連接兩個流程節點的連線。順序流是一端帶有箭頭的實線,可在圖中或單個池中鏈接流程內的各個元素,并顯示各個元素的執行順序。消息流是一端帶有箭頭的點線,可鏈接兩個單獨的池(或兩個單獨的池中的元素),并顯示消息發送的方向。
3、流程實例(Process Instance)
Process Instance即流程實例。流程實例是流程定義的單獨執行,流程定義和流程實例是一對多關系。流程實例與流程定義的關系與面向對象編程中對象與類的關系相同(在這種類比中,流程實例扮演對象的角色,流程定義扮演類的角色)。
流程定義設計完成后,發布到BPM,通過流程引擎解析流程定義,發起一次流程即創建了一個流程實例,比如:創建了一個“請假流程”,這是一個流程定義,張三發起了一次請假流程,即創建了一個流程實例,李四也發起了一次請假,就是創建了另一個流程實例,這兩個實例均基于流程定義創建生成。
4、執行實例(Execution)
Execution即流程執行實例,如果流程實例包含多個執行路徑(例如,在并行網關之后),則會同時產生多個執行實例,即execution, 通過excutionId能夠區分流程實例內的當前活動路徑。
Execution(執行)是分層的,流程實例中的所有Execution(執行)組成一個樹,Process Instance(流程實例)是樹中的根節點,Process Instance(流程實例)本身就是一個Execution(執行)。
5、活動實例(Activity Instance)
Activity Instance即活動實例,活動實例概念與執行概念類似,但采用了不同的視角。雖然可以將執行想象為在流程中移動的令牌,但活動實例表示活動(任務、子流程等)的單個實例。因此,活動實例的概念更面向狀態。
6、任務(Task)
task 所有的任務都是活動,但是活動不全是任務,任務是一個流程的節點,但是并非所有流程節點都是任務。
用戶任務: 就是需要用戶參與觸發的任務。
服務任務: 服務任務又可以劃分為各種各樣的服務任務。
7、服務任務(Service Task)
Camunda中的Service Task(服務任務)用于調用服務。在Camunda中,可以通過調用本地JAVA代碼、外部工作項、web服務形式實現的邏輯來完成的。
8、腳本任務(Script Task)
在Camunda中,腳本任務是一個自動活動,當流程執行到腳本任務時,相關的腳本自動執行。camunda支持大多是兼容JSR-223的腳本引擎實現,比如Groovy, JavaScript, JRuby and Jython。
9、定時任務(Job and Job Definition)
Job and Job Definition即作業執行器,Camunda流程引擎包含一個名為Job Executor的組件。作業執行器是一個調度組件,負責執行異步后臺工作。考慮一個計時器事件的例子:每當流程引擎到達計時器事件時,它將停止執行,將當前狀態保存到數據庫,并創建一個作業以在將來繼續執行。部署流程時,流程引擎會為流程中的每個活動創建作業定義,這些活動將在運行時創建作業。
10、事件(event)
event 事件是BPMN流程建模元素,表示在流程過程中“發生”的事情,事件會影響流程的走向。BPMN定義了不同的事件類型。事件包含開始(Start)、中間(Intermediate)、邊界(Boundary)和結束(End)四種類型。根據觸發方式不同,可以分為捕獲事件(Catching Event)和拋出事件(Throwing Event)。
詳細參考:??https://lowcode.blog.csdn.net/article/details/122886122??
11、流程變量(Process Variable)
Process Variable即流程變量,流程變量在整個工作流中扮演很重要的作用,是業務和流程引擎之間交互信息的載體,業務可以把數據放到流程變量里傳遞給流程引擎,流程引擎也可以把信息放到流程變量給傳遞給業務,流程變量最常見的用途有路由條件表達式、流程執行事件參數等。例如:請假流程中有請假天數、請假原因等一些參數都為流程變量的范圍。流程變量的作用域范圍是流程實例,也就是說各個流程實例的流程變量是不相互影響的。
12、網關(Gateways)
Gateway是BPMN2規范中的流程定義元素,中文可稱為“網關”、“決策”、“判斷”。網關用來控制流程的執行流向,當在拆分路徑時產生令牌,在合并路徑時消費令牌。常用網關可分為排他網關(XOR)、并行網關(AND)和包容網關(OR)。BPMN2.0規范中提供了bpmn:exclusiveGateway排他網關標簽、bpmn:parallelGateway并行網關標簽來定義,activiti、flowable、camunda等開源工作流引擎均支持該標簽。
13、泳道(Swimlanes):
BPMN中的泳道對象(也稱為泳道)是表示業務流程參與者的矩形框。泳道可能包含由該泳道(參與者)執行的流對象,除了必須有一個空體的黑盒子。泳道可以水平排列,也可以垂直排列。它們在語義上是相同的,只是表示不同。對于水平泳道,流程從左到右流動,而垂直泳道中的流程從上到下流動。泳道的例子包括客戶、客戶部門、支付網關和開發團隊。
池(Pools):pool代表業務流程中的參與者。它可以是一個特定的實體(如部門)或一個角色(如助理經理、醫生、學生、供應商)。
游道(Lanes):lane是池的子分區。例如,當您有一個池部門時,您可以將部門主管和普通職員作為泳道。與池一樣,您可以使用lane來表示流程中涉及的特定實體或角色。
14、子流程(SubProcess)
子流程是包含其他活動、網關、事件等的活動,其本身形成的流程是更大流程的一部分。子流程完全在父流程中定義(這就是為什么它通常被稱為嵌入式子流程)。
BPMN 2.0區分了嵌入式子流程(Embedded Subprocess)和調用活動(Call Activity)。從概念上看,當流程執行到達活動時,兩者都將調用子流程。
不同之處在于,調用活動引用流程定義外部的流程,而子流程嵌入在原始流程定義中。調用活動的主要用例是擁有可重用的流程定義,可以從多個其他流程定義調用該定義。子流程的流程定義是在運行時解析的。如果需要,也可以獨立調用子流程。
當流程執行到達調用活動時,將創建一個新的流程實例,該實例用于執行子流程,可能會像在常規流程中那樣創建并行子執行。主流程實例將一直等待,直到子流程完全結束,然后繼續原始流程。
子流程允許分層建模。許多建模工具允許折疊子流程,隱藏子流程的所有細節,并顯示業務流程的高級端到端概述。
15、特別流程(Ad-hoc)
臨時流程是一組業務活動和相應的工件(例如,信息,決策和產品),只能在高級別的聚合中進行標準化。實際的活動種類及其排序因個案而異。臨時流程在國內也被稱為“任意流”。以下是Ad-hoc流程的特征:
雖然可以預測某些活動,但是一開始就無法完全指定大部分過程,因為它需要的信息只能以某種方式進入項目。
如果我們假設在ad-hoc流程的上下文中永遠不會確定下一步,則它們的執行不能由傳統的基于流程的信息系統控制,在大多數情況下,知識工作者可以控制流程。
似乎不可能在設計時考慮臨時過程的所有可能性,這樣的過程模型將變得復雜且難以管理。
16、部署(deployment)
Deployment(部署)是指將流程定義發布到工作量引擎中之后稱為deployment。
17、身份管理(IDM)
提供SSO功能憑證管理工作,可以用來管理權限、用戶、組
18、流程設計器(Modeler)
模型管理工具,用于定義流程模型、表單及應用定義。在Camunda BPM中,提供了C/S流程建模工具(Modeler)和B/S流程建模工具(bpmn.io),用戶通過拖拉拽的方式設計流程圖,這個設計完的xml文件就是流程定義。
19、表單(Form)
form 表單配置給每個流程節點使用,如請假申請中需要用戶填寫請假天數事由,審批節點中需要審批人填寫審批意見等。
20、BPM(Business Process Management,業務流程管理)
BPM是指通過對業務流程進行分析、設計、實施、監控和優化來實現組織目標的一種管理方法和技術。以下是一些BPM相關的概念和術語:
21、流程(Process)
流程指在特定環境下,為完成一定的目標,按照特定的規則和流程活動所構成的一系列行為的集合。
22、流程圖(Process Diagram)
流程圖(Process Diagram):是用來表示流程的圖形化工具,通常采用流程圖、數據流圖等。
23、流程建模(Process Modeling)
流程建模(Process Modeling):指將現實中的業務流程抽象出來,用流程圖等模型表示出來的過程。
23、流程設計(Process Design)
流程設計(Process Design):指在流程建模的基礎上,進一步優化流程,以實現組織目標。
24、流程實施(Process Implementation)
流程實施(Process Implementation):指將流程設計落實到實際的業務中,并確保其按照設計要求執行。
25、流程監控(Process Monitoring)
流程監控(Process Monitoring):指對流程進行實時監測,及時發現問題并進行調整。
26、流程優化(Process Optimization)
流程優化(Process Optimization):指根據實際情況,對流程進行調整,以提高效率、降低成本等。
27、自動化流程(Automated Process)
自動化流程(Automated Process):指利用計算機技術將流程自動化,實現自動化的業務流程。
28、流程引擎(Process Engine)
流程引擎(Process Engine):是一種計算機軟件,用于管理和執行流程,支持流程自動化和流程優化。
29、業務規則(Business Rule)
業務規則(Business Rule):指組織中制定的一些規則和標準,用于指導業務流程的執行。
30、業務活動(Business Activity)
業務活動(Business Activity):指流程中的具體操作或任務,是實現流程目標的基本單位。
31、業務事件(Business Event)
業務事件(Business Event):指對業務流程的狀態變化或重要事件的觀察和記錄,可以用來驅動流程執行。
三、中國特色流程操作概念
1、會簽
會簽是一種聯合審批的特殊審批流程,可理解為一種多人投票機制,一個任務需要多個人同時處理,然后匯總多個人的意見,決定流程下一步該如何執行。流程設計時,若會簽審批節點中設置多個參與人,流程運行時,會簽節點任務需要多人共同處理,然后匯總多人的處理意見,決定會簽節點的處理結果。
會簽分并行會簽和順序會簽兩種:
并行會簽:指同一個審批節點設置多個人,如A、B、C三人,三人會同時收到待辦任務,需全部同意之后,審批才可到下一審批節點。
順序會簽:指同一個審批節點設置多個人,如A、B、C三人,三人按順序依次收到待辦,即A先審批,A提交后B才能審批,需全部同意之后,審批才可到下一審批節點。
2、或簽
一個流程審批節點里有多個處理人,任意一個人處理后就能進入下一個節點。
例如:員工發起采購申請,提交給多名領導審批,只要有一名領導同意即可提交到下一節點。
BPMN2.0規范中提供了
bpmn:multiInstanceLoopCharacteristics多實例循環的模型定義,并通過bpmn:completionCondition標簽定義多實例完成條件,activiti、flowable、camunda等開源工作流引擎均支持該屬性。
3、抄送
抄送:將審批結果通知給抄送列表對應的人。
4、駁回
駁回:將審批重置發送給某節點,重新審批。駁回也叫退回,也可以分退回申請人、退回上一步、任意退回等。
退回申請人: 直接把流程退回給申請節點
退回上一步: 退回流程上一節點
退回任意節點: 退回到流程走過任意一個節點
5、轉辦
轉辦:A轉給其B審批,B審批后,進入下一節點。
6、委派
委派:A轉給其B審批,B審批后,轉給A,A審批后進入下一節點。
7、跳轉
跳轉:可以將當前流程實例跳轉到任意辦理節點
8、拿回
拿回:在當前辦理人尚未處理文件前,允許上一節點提交人員執行拿回
9、撤銷
撤銷:流程發起者可以對流程進行撤銷處理
10、催辦
催辦:可以給當前辦理人員發送催辦通知消息
11、加簽
加簽:允許當前辦理人根據需要自行增加當前辦理節點的辦理人員
12、減簽
減簽:在當前辦理人操作之前減少辦理人
在線體驗系統:http://www.yunchengxc.com