歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

JBPM表結構

一,概述

JBPM全稱——Java  Business PrcessManagerment(業務流程管理),它是覆蓋了業務流程管理、工作流、服務協作等領域的一個開放的、靈活的、易擴展的可執行流程語言框架。

二,最大特色

(1)它的業務邏輯定義沒有采用目前的一些規范,而是采用了它自己定義的Jboss Jbpm Process Definition Language(jpdl)。jpdl任務一個業務流程可以被看作是一個UML狀態圖。jpdl認為一個業務流程可以被看作是一個UML狀態圖。jpdl就是詳細定義了這個狀態圖的每個部分,如起始、結束狀態,以及狀態之間的轉換,通過圖形化的流程定義,直觀地描述業務流程。

(2)使用Hibernate來管理Jbpm的數據庫。

三,通過實例介紹Jbpm重要的幾張表

(1)Jbpm共18張表

(2)涉及到的一些基本流程無非是:

——部署流程定義、啟動流程實例、獲取個人(組)任務、高亮顯示(查看流程進展圖)、完成任務。。。。

(3)例:以請假流程為例:

qingjia.jpdl.xml:

<?xmlversion="1.0" encoding="UTF-8"?>
 
<processname="qingjia1" xmlns="http://jbpm.org/4.4/jpdl"key="qingjia1">
  <start g="246,28,7,3"name="start1">
      <transition g="-71,-17"name="to 申請請假" to="申請請假"/>
  </start>
  <end g="226,320,48,48"name="end1"/>
  <task assignee="張三" g="88,99,92,52" name="申請請假">
      <transition g="-138,5"name="to 部門經理審批" to="部門經理審批"/>
  </task>
  <task assignee="李四" g="233,156,92,52" name="部門經理審批">
      <transition g="3,-26"name="to 總經理審批" to="總經理審批"/>
  </task>
  <task assignee="王二麻子" g="380,226,92,52" name="總經理審批">
      <transition g="-47,-17"name="to end1" to="end1"/>
  </task>
</process>

(1)部署流程定義——從classpath加載jpdl.xml文件

public staticProcessEngine processEngine;
processEngine =Configuration.getProcessEngine();
 
public voidtestDeployFromClasspath(){
processEngine.getRepositoryService()
.createDeployment()
.addResourceFromClasspath("qingjia.jpdl.xml")
.addResourceFromClasspath("qingjia.png")
.deploy();
}

涉及到的表:

表名(英)

表名(中)                  

說明

字段                              

字段說明

 

Jbpm4_Deployment

部署表

描述一次部署

DBID_

主鍵、部署ID

 

State

狀態 active

 

Jbpm4_Lob

倉庫表

存放了流程定義文檔(xml、png)

Deployment_

部署ID、外鍵

 

Name_

Xml或png的文件路徑

 

Jbpm4_Deployprop

部署屬性表

 

DBID_

主鍵

 

Objname_

流程定義名稱

 

Key_

每部署一次,生成4行記錄

 

Langid

語言版本 jpdl-4.4

Pdid

{pdkey-version}

Pdkey

流程定義名稱

一般情況下,pdkey和objname_的值是一樣的

Pdversion

版本號

如果pdkey沒有發生改變,每部署一次,版本號加1;如果pdkey發生改變,則是一個全新的名稱,所以版本號應該從1開始計算

(2)啟動流程實例——根據Id啟動

public voidtestStartPIByPDID(){
ProcessInstancepi = processEngine.getExecutionService()
.startProcessInstanceById("qingjia1-1");
System.out.println(pi.getId());
System.out.println(pi.getState());
}

表名(英)

表名(中)

說明

字段

字段說明

 

Jbpm4_Execution

流程實例表

表示當前正在執行的流程實例

DBID_

主鍵

 

ID_

流程實例ID

 

ActivityName_

當前流程實例活躍的節點

 

Procdefid_

流程定義ID

 

Jbpm4_Hist_Procinst

歷時流程實例表

表示歷史的流程實例,但是當前正在運行的流程實例也在這裡

DBID_

主鍵

 

ID_

流程實例ID

 

Start_

整個流程實例的開始時間

 

End_

流程實例的結束時間,如果該流程實例為當前正在運行的流程,則該值為空

 

State

表示流程實例的狀態,如果是正在運行為active,如果流程實例結束為ended

 

Jbpm4_task

任務表

表示當前正在執行的任務(任務是jbpm流程圖的一個節點)

DBID_

主鍵、任務ID

臨時表,當前任務完成後,數據被刪除;

當啟動流程實例的時候,會自動離開開始節點,流向下一個節點

Name_

任務名稱

 

Assignee_

任務執行人

 

Jbpm4_Hist_Task

歷史任務表

表示歷史的任務,但是當前正在執行的任務也在這裡

State_

如果一個任務被完成以後,值為completed

 

End_

任務結束時間

 

Jbpm4_Hist_Actinst

歷時節點表

表示歷史的節點

Type

節點類型

四,表結構總結:
共18張表。紅色為常用表

 

(1)資源庫與運行時表結構

1. JBPM4_DEPLOYMENT 流程定義表

2. JBPM4_DEPLOYPROP 流程定義屬性表

3. JBPM4_EXECUTION  流程實例表

4. JBPM4_PROPERTY  流程引擎表

 

5. JBPM4_TASK 任務表

6. JBPM4_VARIABLE 上下文表

7. JBPM4_JOB  定時表

8. JBPM4_LOB 存儲表

9. JBPM4_SWIMLANE泳道表

10. JBPM4_PARTICIPATION 參與者表

 

(2) 歷史數據表

11. JBPM4_HIST_ACTINST 流程活動(節點)實例表

12. JBPM4_HIST_DETAIL  流程歷史詳細表

13. JBPM4_HIST_PROCINST 流程實例歷史表

14. JBPM4_HIST_TASK  流程任務實例歷史表

15. JBPM4_HIST_VAR 流程變量(上下文)歷史表

 

(3)身份認證表結構

16. JBPM4_ID_GROUP 組表

17. JBPM4_ID_MEMBERSHIP 用戶角色表

18. JBPM4_ID_USER  用戶表

JBPM4.4部署在Tomcat6以上的版本jar包沖突 http://www.linuxidc.com/Linux/2014-04/99476.htm

JBPM工作流開發指南 PDF http://www.linuxidc.com/Linux/2014-06/103823.htm

JBPM流程實例(PV)Process Variables http://www.linuxidc.com/Linux/2014-06/102859.htm

JBPM流程實例(PI)Process Instance http://www.linuxidc.com/Linux/2014-06/102858.htm

JBPM流程部署校驗 http://www.linuxidc.com/Linux/2014-06/102860.htm

JBPM 的詳細介紹:請點這裡
JBPM 的下載地址:請點這裡

Copyright © Linux教程網 All Rights Reserved