首先,在jbpm4中,流程定義相關的部署信息就存在
JBPM4_DEPLOYMENT、
JBPM4_DEPLOYPROP及
JBPM4_LOB (存放當發布一個png和xml文件后的流程定義后的記錄)。中。
JBPM4_HIST_PROCINST、
JBPM4_HIST_ACTINST兩張表中,分別存放的是process Instance、Activity Instance的歷史記錄,Activity Instance是指流程定義中各個步驟:task descition等存放Process Instance、Activity Instance歷史記錄的表有了,那他們的當前記錄存在什么地方呢?這就需要弄清楚jBPM的另外幾個概念。一般而言,在jBPM中,“a process instance is the root of a tree of executions”。因此,當一個流程實例Split出兩個并行步驟的時候,在
JBPM4_EXECUTION表中將有三筆相關記錄,一筆是代表流程實例的Root Execution,另外兩筆是關于上述兩個并行步驟的Child Execution。
此外,在jbpm中,Activity的種類是很豐富的,可以是Control Flow Activities,如sub-process,decision等,也可以是Automatic Activity,如java、script、sql等,其中需要人來參與完成的Activity被稱為Task,待辦任務放在
JBPM4_TASK表中,而歷史任務放在
JBPM4_HIST_TASK表中。
對一個Task而言,它可能會有多個Participation(swim lane 同樣會有多個Participation),Participation的種類有Candidate、client、owner、Replaced Assignee和viewer,而具體的Participation既可以是單一用戶,也可以是用戶組,Participation的信息存放在
JBPM4_PARTICIPATION中。
Swim Lane是一種Runtime Process Role,通過Swim Lane,多個Task可以一次分配到同一Actor身上,存放這些信息是表
JBPM4_PARTICIPATION。
JBPM4_ID_GROUP、
JBPM4_ID_MEMBERSHIP、
JBPM4_ID_USER這是基本的權限控制,建議關于用戶認證方面還是自己開發一套,這個功能太簡單了,難以滿足需求。
JBPM4_JOB存放的是Timer的定義。
JBPM4_PROPERTY這是jbpm引擎參數表。
JBPM4_VAR表存放流程臨時變量,當流程實例結束后,表中內容清除。
JBPM4_HIST_VAR表存放歷史臨時變量,但是jbpm4好像還沒有對這張表進行利用。
JBPM4_HIST_DETAIL表保存變量變更記錄。
了解jbpm4.3以上這18張表后,我們應該在流程運行中,詳細觀察jbpm是如何對這些表進行操作,以及進行什么樣的操作的。
發布一個流程定義后:
JBPM4_DEPLOYMENT新增一條記錄
JBPM4_DEPLOYPROP新增三條記錄
JBPM4_LOB新增兩條記錄
開始一個流程startProcessInstanceByKey后:
JBPM4_EXECUTION新增一條記錄
JBPM4_TASK新增一條記錄
JBPM4_HIST_PROCINST、
JBPM4_HIST_ACTINST分別新增一條記錄
JBPM4_HIST_TASK新增一條記錄
當執行taskService.setVariables(task.getId(), map);時,
JBPM4_VARIABLES中添加變量記錄
轉載人員:Nicholas
posted on 2010-09-16 19:51
obpm 閱讀(1263)
評論(0) 編輯 收藏 所屬分類:
流程 、
數據庫