一 、Activity 簡介
1、工作流(Work Flow)是什麼?
工作流(Workflow),就是“業務過程的部分或整體在計算機應用環境下的自動化”,它主要解決的是“使在多個參與者之間按照某種預定義的規則傳遞文檔、信息或任務的過程自動進行,從而實現某個預期的業務目標,或者促使此目標的實現。
常見的工作流框架有Activity、JBPM、OSWorkFlow、WorkFlow。本系列使用activiti5.13版本。
工作流框架底層需要有數據庫提供支持,activiti5.13版本,有23張表。JBPM4.4框架有18張表。JBPM底層使用hibernate操作數據庫。Activiti框架底層使用的mybatis操作數據庫
2、工作流技術的優點
工作流系統,實現了工作流程的自動化,提高了企業運營效率、改善企業資源利用、提高企業運作的靈活性和適應性、提高量化考覈業務處理的效率、減少浪費(時間就是金錢)。
3、Activity
Activiti5是由Alfresco軟件在2010年5月17日發佈的業務流程管理(BPM)框架,它是覆蓋了業務流程管理、工作流、服務協作等領域的一個開源的、靈活的、易擴展的可執行流程語言框架。Activiti基於Apache許可的開源BPM平臺,創始人Tom Baeyens是JBoss jBPM的項目架構師,它特色是提供了eclipse插件,開發人員可以通過插件直接繪畫出業務流程圖。
二 、Activity工作流學習要點
1 、一個插件
在Eclipse中安裝Activity插件,讓你可以在Eclipse中繪製Activity工作流圖。IDEA 安裝Activiti Designer插件actiBPM。
2、一個引擎
ProcessEngine對象,Activity工作流引擎。這是Activiti工作的核心。負責生成流程運行時的各種實例及數據、監控和管理流程的運行。所有的操作都是從獲取引擎開始的,所以一般會把引擎作爲全局變量。
ProcessEngine processEngine =ProcessEngines.getDefaultProcessEngine();
3、一個配置文件
activiti.cfg.xml。Activiti核心配置文件,配置流程引擎創建工具的基本參數和數據庫連接池參數。
4、五種數據庫表
Activiti的後臺是有數據庫的支持,所有的表都以ACT_開頭。 第二部分是表示表的用途的兩個字母標識。用途也和服務的API對應。
ACT_RE_* | 'RE'表示repository。 這個前綴的表包含了流程定義和流程靜態資源(圖片,規則,等等) |
ACT_RU_* | 'RU'表示runtime。 這些運行時的表,包含流程實例,任務,變量,異步任務,等運行中的數據。 Activiti只在流程實例執行過程中保存這些數據,在流程結束時就會刪除這些記錄。 這樣運行時表可以一直很小速度很快。 |
ACT_ID_* | 'ID'表示identity。 這些表包含身份信息,比如用戶,組等等。 |
ACT_HI_* | 'HI'表示history。 這些表包含歷史數據,比如歷史流程實例,變量,任務等等。 |
ACT_GE_* | 通用數據,用於不同場景下,如存放資源文件。 |
5. 23張表
不同的表存放不同方面的數據,有流程定義表、任務結點表、流程變量表、任務歷史表等等。
序號 | 表名 | 描述 |
---|---|---|
1 | ACT_GE_BYTEARRAY | 二進制數據表 |
2 | ACT_GE_PROPERTY | 屬性數據表,用來存儲整個流程圖引擎級別的數據,初始化表結構時會默認插入三條記錄。 |
3 | ACT_HI_ACTINST | 歷史節點表 |
4 | ACT_HI_ATTACHMENT | 歷史附件表 |
5 | ACT_HI_COMMENT | 歷史意見表 |
6 | ACT_HI_IDENTITYLINK | 歷史流程人員表 |
7 | ACT_HI_DETAIL | 歷史詳情表,提供歷史變量的查詢 |
8 | ACT_HI_PROCINST | 歷史流程實例表 |
9 | ACT_HI_TASKINST | 歷史任務實例表 |
10 | ACT_HI_VARINST | 歷史變量表 |
11 | ACT_ID_GROUP | 用戶組信息表 |
12 | ACT_ID_INFO | 用戶擴展信息表 |
13 | ACT_ID_MEBERSHIP | 用戶與用戶組對應信息表 |
14 | ACT_ID_USER | 用戶信息表 |
15 | ACT_RE_DEPLOYMENT | 部署信息表 |
16 | ACT_RE_MODEL | 流程設計模型部署表 |
17 | ACT_RE_PROCDEF | 流程定義數據表 |
18 | ACT_RU_EVENT_SUBSCR | throwEvent、catchEvent時間監聽信息表 |
19 | ACT_RU_EXECUTION | 運行時流程執行實例表 |
20 | ACT_RU_IDENTITYLINK | 運行時流程人員表 |
21 | ACT_RU_JOB | 運行時定時任務數據表 |
22 | ACT_RU_TASK | 運行時任務節點表 |
23 | ACT_RU_VARIABLE | 運行時流程運行變量表 |
6. 5項Service
不同的Service類對應不同的功能。比如TaskService,是activiti的任務服務類。可以從這個類中獲取任務的信息。而HistoryService,則是activiti的查詢歷史信息的類。在一個流程執行完成後,這個對象爲我們提供查詢歷史信息。
7. 7項基本操作
- 設計流程圖(各種組件,如連線、用戶任務、網關)
- 流程定義增刪改查
- 流程變量增刪改查
- 啓動流程定義
- 任務增刪改查
- 完成任務
- 歷史信息查詢