jBPM開發入門指南(3) 續

 


上接  :  jBPM開發入門指南(3)

6.5  部署processdefinition.xml

       我們要把 processdefinition.xml 的流程定義的數據部署到數據庫中,因爲 jBPM 在正式運行的時候不是去讀 processdefinition.xml 文件,而是去讀數據庫中的流程定義。 這裏寫了一個個 JUnit 程序來部署 processdefinition.xml ,當然你用普通的 Java Main 也可以。

package com.sample;

 

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.InputStream;

 

import junit.framework.TestCase;

 

import org.jbpm.JbpmConfiguration;

import org.jbpm.JbpmContext;

import org.jbpm.graph.def.ProcessDefinition;

 

/**

  * 部署 processdefinition.xml

  *

  * @author chengang

  *

  */

public class DeployProcessTest extends TestCase {

    /**

      * 在本方法執行完畢後,檢查 jbpm_processdefinition 表會多了一條記錄

      *

      * @throws FileNotFoundException

      */

    public void testDeployProcessDefinition() throws FileNotFoundException {

        // jbpm.cfg.xml 取得 jbpm 的配置

        JbpmConfiguration config = JbpmConfiguration.getInstance ();

        // 創建一個 jbpm 容器

        JbpmContext jbpmContext = config.createJbpmContext();

        // processdefinition.xml 生成相對應的流程定義類 ProcessDefinition

        InputStream is = new FileInputStream("processes/simple/processdefinition.xml" );

        ProcessDefinition processDefinition = ProcessDefinition.parseXmlInputStream (is);

        // 利用容器的方法將流程定義數據部署到數據庫上

        jbpmContext .deployProcessDefinition(processDefinition);

        // 關閉 jbpmContext

        jbpmContext .close();

    }

 

}

 

運行此程序,在控制檯打印了一些日誌,通過。如果出錯,仔佃閱讀出錯信息以判斷錯誤原因,並確定你按照前面兩節:“修改 hibernate.cfg.xml ”和“完善庫引用”的內容做好了設置。

 

6.6  從數據庫中的查看部署效果

無論是 MySQL 還是 Oracle ,查詢 jbpm_processdefinition 表,你會發現多了一條記錄,如下圖 ( PLSQL Developer 的顯示爲例 )

 

20060823_image006.jpg
 

依次檢查各表我們可以發現有如下變化:

 

 

 

 

 

 

20060823_image007.jpg
20060823_image008.jpg
20060823_image009.jpg
20060823_image010.jpg
20060823_image011.jpg
20060823_image012.jpg
 

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

 

jbpm_processdefinition

一個流程定義文件對應一條記錄,可記錄多個流程定義文件,可記錄一個流程定義文件的對個版本。

jbpm_action

記錄 ActionHandler 的對象實例(以名稱爲標識)

jbpm_delegation

記錄了 ActionHandler 全類名,以便於用反射方式來加載

jbpm_envent

它的 transition 引用了 Jbpm_transition 表的 id ,再看其它字段,估計此表是表示流程轉向事件的一個實例,或者是一個各表之間的聯接表。

jbpm_node

流程結點

jbpm_transition

流程的轉向定義

jbpm_variableaccess

流程中攜帶的變量。 ACCESS 字段是這些變量的讀寫權限

 

發佈了29 篇原創文章 · 獲贊 0 · 訪問量 631
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章