工作流Activiti入門
最近做的一個MES(製造執行系統)專案裡面主要用到了工作流,趁有時間寫下對新瞭解的Activiti框架的認識。
1.為什麼要用工作流?
首先要知道不是什麼專案都會用到工作流,但是要用到的時候卻能節省你很多的時間跟精力。百科:工作流(Workflow),指“業務過程的部分或整體在計算機應用環境下的自動化”。是對工作流程及其各操作步驟之間業務規則的抽象、概括描述。簡單理解就是對一系列操作組成的流程。
拿幾個業務場景例子:請假、費用報銷、採購、工廠生產工件、物流、電商購物等等。這些例子都不是一個操作就能完成的,比如請假,在後臺往往要通過不同的角色(如部門經理、老闆)和審批來完成整個的流程。在工作流框架沒有出現的時候,這些流程都是靠程式設計師自己一個個節點的寫出來的,比較耗時間,同時寫的時候會有很多考慮不周的地方,從而導致出錯的可能性增大。由此,如果能使用這種現成的框架,將能節省不少時間和精力。、
2.名詞解釋
使用工作流,就會出現幾個名詞:
Activiti:注意是Actitivi而不是Activity,前者是工作流框架,後者是安卓的四大元件之一(Activity,Service服務,Content Provider內容提供,BroadcastReceiver廣播接收器)。由此網上百度找資料稍不注意就會找到很多安卓的教程,挺無奈的~谷歌就還好,所以,你們懂的。
BPM:即業務流程管理,是一種以規範化的構造端到端的卓越業務流程為中心,以持續的提高組織業務績效為目的的系統化方法,常見商業管理教育如EMBA、MBA等均將BPM包含在內。
BPMN:業務流程建模與標註,包括這些圖元如何組合成一個業務流程圖(Business Process Diagram)。
工作流引擎:工作流引擎是任何工作流框架的核心部分。
工作流和BPM的關係可以簡單的看作是後者BPM包含工作流,而BPMN只是工作流中的一部分。
3.工作流框架
開源的工作流框架主要有jbpm和activit,二者都出自同一個作者,前者現在基本不用了,activiti就是在參考jbpm的基礎上開發出來的,所以,工作流框架基本考慮activiti就可以了。當然,有的公司也有自己的工作流框架,比如oracle和華為等等,這個就不在本文討論訪問內了。本文主要講Activiti。
4.Activiti入門
因為Activiti的開發要用到.bpmn檔案,也就是流程圖檔案,這個是整個工作流中最重要的部分,能不能根據業務場景準確的用流程圖表達出來關係到整個開發。而要畫流程圖就要用到Eclipse的外掛Activiti Designer,至於IDEA沒試過(網上好像有教程),官方文件就只有Eclipse的。
另外,在工作中最好整合spring的,首先Activiti本身就用到了spring,什麼依賴注入之類的;另外就是不要用spring-boot,因為官方的spring-boot版本目前還是實驗階段,自己私下玩玩就好,真正的開發就不要冒太大風險。