天天看點

JBPM 流程版本

                     流程定義檔案:helloWorld.xml

<?xml version="1.0" encoding="UTF-8"?>

<process-definition xmlns="urn:jbpm.org:jpdl-3.1" name="Helloworld">

 <start-state>

  <transition to='s' />

 </start-state>

 <state name='s'>

  <transition to='end' />

 </state>

 <end-state name='end' />

</process-definition>

流程XML檔案定義完成之後,接下來的工作就是要将其釋出到對應的資料庫中,将我們的流程定義部署到資料庫時,部署時流程的名稱就是前面提高的<process definition>裡定義的name”屬性的值。

JBPM的版本機制允許在資料庫中多個同名流程定義共存,流程執行個體以當時的最新版本來啟動,并且在它的整個生命周期中将保持以相同的流程定義執行。當一個新的版本被部署,新的流程執行個體以新版本啟動,而老的流程執行個體則以老的流程定義繼續執行。

在部署的時候,jbpm 安排一個版本(version)号碼(數字)給流程定義。為了實作安排version号碼,如果它是第一個版本(version),JBPM采取1+或者1。從ProcessDefinition pd=JbpmContext.getGraphSession()

.findLatestProcessDefinition("processName")

中可以通過一個給定的processName查找最近的流程定義,這裡的processName就是前面我們在定義流程的時候在<process definition>裡定義的name”屬性的值,這個屬性就是用來表示該流程的名稱。如我們的下列代碼就是要列出JBPM資料庫裡的有所有最後一次釋出的流程定義的版本:

JbpmContext context=JbpmContext.getCurrentJbpmContext();

List ls=context.getGraphSession().findLatestProcessDefinitions();

/*

這裡傳回的List是ProcessDefinition的集合

*/

繼續閱讀