act_ge_bytearray 多個對1個 act_re_deploymenthtml
數據庫說明:
ACT_RE_* RE 表示 repository .
這個前綴表包含了流程定義 和流程靜態資源(圖片,規則等等)git
ACT_RU_* RU表示 runtime
這些運行時的表,包含流程實例,任務,變量,異步任務,
等運行中的數據。 Activiti 只在流程實例執行過程當中保存這些數據,在流程結束時會刪除這些記錄。
這樣運行時表能夠一直很小,速度很快程序員
ACT_ID_* ID表示identity .
這些表包含身份信息,好比用戶,組等等github
ACT_HI_* HI表示history .
這些表包含歷史數據,好比歷史流程實例,變量,任務等等數據庫
ACT_GE_* 通用數據 ,用於不一樣場景下,如存放資源文件api
1, 資源庫流程規則表
1) act_re_deployment 部署信息表緩存
2) act_re_model 流程設計模型部署表併發
3) act_re_procdef 流程定義數據表框架
2, 運行時數據庫表eclipse
1) act_ru_execution 運行時流程執行實例表
2) act_ru_identitylink 運行時流程人員表,
注意存儲任務節點與參與者的信息
3)act_ru_task 運行時任務節點表
4) act_ru_variable 運行時流程變量數據表
3, 歷史數據庫表
1) act_hi_actinst 歷史節點表
2) act_hi_attachment 歷史附件表
3) act_hi_comment 歷史意見表
4) act_hi_identitylink 歷史流程人員表
5) act_hi_detail 歷史詳情表,提供歷史變量的查詢
6) act_hi_procinst 歷史流程實例表
7) act_hi_taskinst 歷史任務實例表
8) act_hi_varinst 歷史變量表
4, 組織機構表
1) act_id_group 用戶信息表
2) act_id_info 用戶擴展信息表
3) act_id_membership 用戶與用戶組對應信息表
4) act_id_user 用戶信息表
這四張表很常見,基本的組織機構管理。關於用戶認證方便建議仍是
本身開發一套,組件自帶的功能太簡單,使用中有不少需求難以知足
5, 通用數據表
1) act_ge_bytearray 二進制數據表
2) act_ge_property 屬性數據表存儲整個流程引擎級別的數據
初始化表結構時,會默認插入三條記錄
8,使用eclipse activiti 插件生成
生成的 *.bpmn20.xml 是給 計算機進行流程的執行和信息的傳遞使用的
好比: HelloWorld.bpmn20.xml
早起可能還會生成 *.png 好比 HelloWorld.png 流程的 圖片,目前生成了放在數據庫裏面了,是給
客戶進行查看的,進行理解
若是須要 流程圖 png ,那麼就能夠在eclipse --Windows--Preference--Activiti--save Action
將 Create process definition image... 勾上
這樣當生成 bpmn 文件時候也會在下面生成圖片的,這樣能夠保存給用戶看了等等
由於在實際開發過程當中,經過 bpmn生成的 流程圖,可能會因爲座標的緣由有偏差,
因此生成圖片時候就 保存 顯示給用戶看便可
9,注意:
工做流activiti 的表使用存放流程數據的
而業務的數據須要程序員本身去建立和維護的
必定須要業務去和關聯流程 才能去開發工做流系統
10,
服務類說明:
RepositoryService 管理流程定義
RuntimeService 執行管理,包括啓動,推動,刪除流程實例等操做
TaskService 任務管理
HistoryService 歷史管理 執行完的數據的管理
IdentityService 組織機構管理--成員組等
FormService 一個可選服務,任務表單管理
11, bpmn文件,在部署後,每次系統啓動是都會被解析,把內容封裝成流程定義放入項目緩存中,、、
Activiti 框架結合這個xml文件自動管理流程,流程的執行就按照bpmn文件定義的規則執行的
12, 流程定義是不能修改的
若是須要修改就 再生成一個 修改後的bpmn文件流程,而後再次部署,
key相同也就是 升級一個版本了
13,
Deployment 類 部署對象
一次部署的多個文件的信息,對於不須要的流程能夠刪除和修改
ProcessDefinition 類
解析 .bpmnhou 獲得的流程定義規則的信息,工做流系統就是按照流程定義的規則執行的
14, 一個 Task節點和 Execution 節點是 1對1 的狀況,在task對象中使用 Execution 來表示
他們之間的關係
在activiti 任務中,主要分爲兩大類查詢任務,(我的任務和組任務)
1),確切指定了辦理者的任務,這個將成爲指定者的私有任務,即我的任務
2), 沒法指定具體的某一我的來辦理的任務,能夠把任務分配給幾我的或一道多個小組,讓這個
範圍內的用戶能夠選擇性來辦理這類人,組任務
15, ProcessInstance 類
表明流程定義的執行實例,若是某一我的請了一天的加,就必須發出一個流程實例的申請,
一個流程實例包括了全部的運行節點,咱們能夠利用這個對象來了解當前流程實例的進度等信息
流程實例就表示一個流程從開始到結束的最大分支
Execution類 ,去描述流程執行的每個節點,在沒有併發的狀況下,
Execution 就是 ProcessInstance .
執行中出現同時執行的分支時候,每一個分支就是 一個 Execution
ProcessInstance 繼承了 Execution 類
16, 流程變量在整個工做流中很重要,
例如,請假流程中有請假天數,
請假緣由等一些參數都爲流程變量的範圍。
而流程變量的做用域範圍是只對應一個流程實例,
也就是說各個流程實例的流程變量是不互相影響的。
流程實例結束後之後流程變量還保存在數據庫中。
設置流程變量(名--值)
獲取流程變量(經過 名--值)來獲取的
流程變量 是有固定的支持類型的,能夠去查看api 中文文檔的
或者是 說明文檔
taskService.setVariable :
設置流程變量的時候,流程變量名稱相同的時候,後一次的值替換前一次的值,
並且能夠看到 task_id的字段不會存聽任務ID的值
taskService.setVariableLocal :
設置流程變量的時候,針對當前活動的節點設置流程變量,若是一個流程中存放2個
活動節點,對每一個活動節點都設置流程變量,即便流程變量的名稱相同,後一次的版本的值也不會
替換前一次的值,它會使用不一樣的任務ID task_id 做爲標識,存放2個流程變量的值,
並且能夠看到 TASK_ID 就是存聽任務的id
還有 taskService.setVariableLocal 綁定了當前的任務,當流程繼續執行時,下個任務
獲取不到這個流程變量(由於正在執行的流程變量中沒有這個數據),
全部查詢正在執行的任務時不能查詢到數據,此時須要查詢歷史的流程變量的數據
去歷史流程變量的表去查。
一些activiti 學習地址:
17,
activiti 官網
http://www.activiti.org/download.html http://jingyan.baidu.com/article/49ad8bce52e1515835d8fa56.html?st=2&os=0&bd_page_type=1&net_type=1 http://jingyan.baidu.com/article/48b37f8d67b8e21a646488c5.html http://www.open-open.com/lib/view/open1350460225367.html http://wenku.baidu.com/link?url=YbC3XYj__I7EUV8bSC0nH74p_cTNKg0uS7oJB0lwGYQrhUQVU8G7GVMiHxqh6CG0EVk-Fw7xb3kFfeAsdEpdQEgPPQNGXWPBlefemxwTa5_ 插件eclipse 的activiti http://www.itxxz.com/a/gaoji/2015/0116/eclipse_activiti_install.html http://www.tuicool.com/articles/yUnURjy http://www.cnblogs.com/strinkbug/p/4876819.html https://my.oschina.net/githubhty/blog/690269?p={{currentPage+1}} 教程 http://blog.csdn.net/yangyi22/article/details/9225849 用戶手冊: http://www.mossle.com/docs/activiti/index.html#license