三分鐘了解Activity工作流(轉)

本文轉自 http://www.it165.net/pro/html/201504/37443.html
一、 什么是工作流
以請假為例,現(xiàn)在大多數(shù)公司的請假流程是這樣的
員工打電話(或網(wǎng)聊)向上級提出請假申請——上級口頭同意——上級將請假記錄下來——月底將請假記錄上交公司——公司將請假錄入電腦
采用工作流技術的公司的請假流程是這樣的
員工使用賬戶登錄系統(tǒng)——點擊請假——上級登錄系統(tǒng)點擊允許
就這樣,一個請假流程就結束了
有人會問,那上級不用向公司提交請假記錄?公司不用將記錄錄入電腦?答案是,用的。但是這一切的工作都會在上級點擊允許后自動運行!
這就是工作流技術。

Georgakopoulos給出的工作流定義是:工作流是將一組任務組織起來以完成某個經(jīng)營過程:定義了任務的觸發(fā)順序和觸發(fā)條件,每個任務可以由一個或多個軟件系統(tǒng)完成,也可以由一個或一組人完成,還可以由一個或多個人與軟件系統(tǒng)協(xié)作完

Paste_Image.png

二、 工作流技術的優(yōu)點
從上面的例子,很容易看出
工作流系統(tǒng),實現(xiàn)了工作流程的自動化,提高了企業(yè)運營效率、改善企業(yè)資源利用、提高企業(yè)運作的靈活性和適應性、提高量化考核業(yè)務處理的效率、減少浪費(時間就是金錢)。
而手工處理工作流程,一方面無法對整個流程狀況進行有效跟蹤、了解,另一方面難免會出現(xiàn)人為的失誤和時間上的延時導致效率低下,特別是無法進行量化統(tǒng)計,不利于查詢、報表及績效評估。

三、 Java開發(fā)者會為什么要學Activity工作流
在Java領域,JBPM和Activity是兩個主流的工作流系統(tǒng),而Activity的出現(xiàn)無疑將會取代JBPM(Activity的開發(fā)者就是從Jbpm開發(fā)者出來的)。

四、 Activity工作流學習要點

1. 1個插件
在Eclipse中安裝Activity插件,讓你可以在Eclipse中繪制Activity工作流圖

2. 1個引擎
ProcessEngine對象,Activity工作流引擎。這是Activiti工作的核心。負責生成流程運行時的各種實例及數(shù)據(jù)、監(jiān)控和管理流程的運行。
所有的操作都是從獲取引擎開始的,所以一般會把引擎作為全局變量
ProcessEngine processEngine =ProcessEngines.getDefaultProcessEngine();

3. 1個配置文件
activiti.cfg.xml。Activiti核心配置文件,配置流程引擎創(chuàng)建工具的基本參數(shù)和數(shù)據(jù)庫連接池參數(shù)

4. 5種數(shù)據(jù)庫表
Activiti的后臺是有數(shù)據(jù)庫的支持,所有的表都以ACT_開頭。 第二部分是表示表的用途的兩個字母標識。用途也和服務的API對應。
ACT_RE_: 'RE'表示repository。 這個前綴的表包含了流程定義和流程靜態(tài)資源(圖片,規(guī)則,等等)。
ACT_RU_
: 'RU'表示runtime。 這些運行時的表,包含流程實例,任務,變量,異步任務,等運行中的數(shù)據(jù)。 Activiti只在流程實例執(zhí)行過程中保存這些數(shù)據(jù),在流程結束時就會刪除這些記錄。 這樣運行時表可以一直很小速度很快。
ACT_ID_: 'ID'表示identity。 這些表包含身份信息,比如用戶,組等等。
ACT_HI_
: 'HI'表示history。 這些表包含歷史數(shù)據(jù),比如歷史流程實例,變量,任務等等。
ACT_GE_*: 通用數(shù)據(jù),用于不同場景下,如存放資源文件。

5. 23張表
不同的表存放不同方面的數(shù)據(jù),有流程定義表、任務結點表、流程變量表、任務歷史表等等。

Paste_Image.png

6. 5項Service
不同的Service類對應不同的功能。
比如TaskService,是activiti的任務服務類。可以從這個類中獲取任務的信息。
而HistoryService,則是activiti的查詢歷史信息的類。在一個流程執(zhí)行完成后,這個對象為我們提供查詢歷史信息。

7. 7項基本操作
設計流程圖(各種組件,如連線、用戶任務、網(wǎng)關)
流程定義增刪改查
流程變量增刪改查
啟動流程定義
任務增刪改查
完成任務
歷史信息查詢

學習7項基本操作時只需在JavaSE下執(zhí)行即可,當然,做web項目的時候就要考慮和SSH等開發(fā)框架結合的問題。當然,只有基本操作學會了,綜合開發(fā)并不難。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容