Activiti工作流框架学习(一)环境的搭建和数据表的了解
?
一、什么是工作流
?????? 工作流(Workflow),就是“業(yè)務(wù)過程的部分或整體在計算機(jī)應(yīng)用環(huán)境下的自動化”,它主要解決的是“使在多個參與者之間按照某種預(yù)定義的規(guī)則傳遞文檔、信息或任務(wù)的過程自動進(jìn)行,從而實(shí)現(xiàn)某個預(yù)期的業(yè)務(wù)目標(biāo),或者促使此目標(biāo)的實(shí)現(xiàn)”。
?????? 工作流管理系統(tǒng)(Workflow Management System,WfMS)是一個軟件系統(tǒng),它完成工作量的定義和管理,并按照在系統(tǒng)中預(yù)先定義好的工作流邏輯進(jìn)行工作流實(shí)例的執(zhí)行。工作流管理系統(tǒng)不是企業(yè)的業(yè)務(wù)系統(tǒng),而是為企業(yè)的業(yè)務(wù)系統(tǒng)的運(yùn)行提供了一個軟件的支撐環(huán)境。
二、???常見的工作流框架
流行的工作流框架有:Activity5.13、JBPM4.4、OSWorkFlow、WorkFlow
工作流框架底層需要有數(shù)據(jù)庫提供支持,activiti5.13版本,有23張表。
JBPM4.4框架底層有數(shù)據(jù)庫支持,18張表。
JBPM底層使用hibernate操作數(shù)據(jù)庫。
Activiti框架底層使用的mybatis操作數(shù)據(jù)庫。
三、??? Activiti5介紹
Activiti5是由Alfresco軟件在2010年5月17日發(fā)布的業(yè)務(wù)流程管理(BPM)框架,它是覆蓋了業(yè)務(wù)流程管理、工作流、服務(wù)協(xié)作等領(lǐng)域的一個開源的、靈活的、易擴(kuò)展的可執(zhí)行流程語言框架。Activiti基于Apache許可的開源BPM平臺,創(chuàng)始人Tom Baeyens是JBoss jBPM的項目架構(gòu)師,它特色是提供了eclipse插件,開發(fā)人員可以通過插件直接繪畫出業(yè)務(wù)流程圖。?
?
四、???安裝activiti流程設(shè)計器插件
第一步:獲得下載activiti-eclipse插件的安裝包
?
第二步:解壓安裝包,復(fù)制解壓文件里面的activiti到eclipse中的dropins目錄中
?
第三步:重啟eclipse,勾選save選項
?
第四步:如果重啟eclipse無法顯示activiti圖標(biāo),表明所使用的eclipse版本不支持該插件,可以選擇換myeclipse或其他版本的eclipse
五、???初始化activiti框架數(shù)據(jù)表
5.1? 下載activiti框架?????
Activiti框架下載地址:http://activiti.org/
5.2創(chuàng)建一個數(shù)據(jù)庫
5.3使用activiti框架的自動建表功能
activiti框架提供了和hibernate類似的自動建表功能
搭建開發(fā)環(huán)境:
第一步:創(chuàng)建一個Java項目activiti1110
第二步:導(dǎo)入jar包(從下載下來的activiti-5.13工作流引擎下面的DEMO導(dǎo)入jar包),還需要導(dǎo)入MySQL驅(qū)動包
1、不使用配置文件(不建議)
測試代碼:
?
[java]?view plain?copy?
2、使用配置文件
?配置文件activiti-context.xml如下:
?
[html]?view plain?copy?
測試代碼:
?
[java]?view plain?copy?
3、使用配置文件(使用默認(rèn)配置)
要求配置文件名稱必須為activiti-context.xml或者activiti.cfg.xml因為,因為默認(rèn)的配置ProcessEngines.getDefaultProcessEngine();會初始化這兩個文件的其中一個,默認(rèn)的配置信息如下:
?
測試代碼:
?
[java]?view plain?copy?
六、了解23張表
Activiti的后臺是有數(shù)據(jù)庫的支持,所有的表都以ACT_開頭。 第二部分是表示表的用途的兩個字母標(biāo)識。用途也和服務(wù)的API對應(yīng)。
1)???????ACT_RE_*: 'RE'表示repository。 這個前綴的表包含了流程定義和流程靜態(tài)資源(圖片,規(guī)則,等等)。
2)???????ACT_RU_*: 'RU'表示runtime。 這些運(yùn)行時的表,包含流程實(shí)例,任務(wù),變量,異步任務(wù),等運(yùn)行中的數(shù)據(jù)。 Activiti只在流程實(shí)例執(zhí)行過程中保存這些數(shù)據(jù),在流程結(jié)束時就會刪除這些記錄。 這樣運(yùn)行時表可以一直很小速度很快。
3)???????ACT_ID_*: 'ID'表示identity。 這些表包含身份信息,比如用戶,組等等。
4)???????ACT_HI_*: 'HI'表示history。 這些表包含歷史數(shù)據(jù),比如歷史流程實(shí)例,變量,任務(wù)等等。
5)???????ACT_GE_*: 通用數(shù)據(jù), 用于不同場景下。
資源庫流程規(guī)則表
1)??????act_re_deployment ??? 部署信息表
2)????act_re_model? ? 流程設(shè)計模型部署表
3)????act_re_procdef? ???? 流程定義數(shù)據(jù)表
運(yùn)行時數(shù)據(jù)庫表
1)????act_ru_execution????? 運(yùn)行時流程執(zhí)行實(shí)例表
2)????act_ru_identitylink??? 運(yùn)行時流程人員表,主要存儲任務(wù)節(jié)點(diǎn)與參與者的相關(guān)信息
3)????act_ru_task ????? 運(yùn)行時任務(wù)節(jié)點(diǎn)表
4)????act_ru_variable? 運(yùn)行時流程變量數(shù)據(jù)表
歷史數(shù)據(jù)庫表
1)????act_hi_actinst ?? ????? 歷史節(jié)點(diǎn)表
2)????act_hi_attachment??? ????? 歷史附件表
3)????act_hi_comment ????? 歷史意見表
4)????act_hi_identitylink???? ????? 歷史流程人員表
5)????act_hi_detail ????? ????? 歷史詳情表,提供歷史變量的查詢
6)????act_hi_procinst? ????? 歷史流程實(shí)例表
7)????act_hi_taskinst?? ????? 歷史任務(wù)實(shí)例表
8)????act_hi_varinst??? ????? 歷史變量表?
組織機(jī)構(gòu)表
1)????act_id_group???? ????? 用戶組信息表
2)????act_id_info? ????? 用戶擴(kuò)展信息表
3)????act_id_membership? 用戶與用戶組對應(yīng)信息表
4)????act_id_user? ????? 用戶信息表
這四張表很常見,基本的組織機(jī)構(gòu)管理,關(guān)于用戶認(rèn)證方面建議還是自己開發(fā)一套,組件自帶的功能太簡單,使用中有很多需求難以滿足
通用數(shù)據(jù)表
1)????act_ge_bytearray???? ????? 二進(jìn)制數(shù)據(jù)表
2)????act_ge_property ????? 屬性數(shù)據(jù)表存儲整個流程引擎級別的數(shù)據(jù),初始化表結(jié)構(gòu)時,會默認(rèn)插入三條記錄
?
總結(jié)
以上是生活随笔為你收集整理的Activiti工作流框架学习(一)环境的搭建和数据表的了解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WebService开发中SoapExc
- 下一篇: Materials about desi