Jbpm3.2 開發一個Hello World程式

sz_bdqn發表於2011-02-19

    這是一個超級簡單的請假流程,只是為了學習,其他的我就不說了直接開始了。

1.定義 流程processdefinition.xml

    流程檔案定義檔案是 processdefinition.xml,這個是一個關鍵檔案。具體內容如下:

 


 

 

 

 

processdefinition.xml檔案相關標籤說明:

說明:

    流程的名稱改成了 helloworld 。(呵呵,也就是這裡和 helloworld 有關了)

       <controller> 標籤定義了三個資料:姓名、請假天數、說明。

       <transition> 標籤定了 request 節點的一個流程轉向,這裡是轉到 confirm 節點。

       <action> 標籤定義了流程由一個節點轉到另一個節點時,所要執行的動作,動作封裝在一個              

       ActionHandler 類中。比如這裡當 request confirm 結點時將執行 RequestAction 類的 execute 方法。

       RequestAction 下面還有一個 <reason> (請假理由),它對應於 FinshAction 的屬性 String reason

    例如:

 

      

 

 流程檔案對應的流程圖如下:


 

     在processdefinition.xml中定義2個ActionHandler,分別是RequestAction和ConfirmAction,具體程式碼如下:

 

說明:

ExecutionContext 是一個貫通流程的容器,他是個大寶箱,裡面啥玩意都有,後面將更深入的提到。這裡的reasion就是processdefinition.xml中的我要請假。


 

 

 到了這裡,後臺的程式基本寫完了,下面開始對流程進行部署,用前面提到的方法如下:

 

 

 

 

執行此程式看是否成功,在這裡我的是可以的,我們繼續了。


我慢來看看jbpm資料相關表:如下圖

 

 

 

並由此簡單判斷出各表的作用,表中各欄位的作用由欄位名也能知曉一二。

jbpm_processdefinition : 一個流程定義檔案對應一條記錄,可記錄多個流程定義檔案,可記錄一個流程定義檔案的對個版本。
 
jbpm_action  : 記錄 ActionHandler 的物件例項(以名稱為標識)
 
jbpm_delegation : 記錄了 ActionHandler 全類名,以便於用反射方式來載入
 
jbpm_envent : 它的 transition 引用了 Jbpm_transition 表的 id ,再看其它欄位,估計此表是表示流程轉向事件的一個例項,或者是一個各表之間的聯接表。
 
jbpm_node : 流程結點
 
jbpm_transition  : 流程的轉向定義
 
jbpm_variableaccess  :  流程中攜帶的變數。 ACCESS 欄位是這些變數的讀寫許可權
 

 

 

相關文章