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