原文地址:http://blog.csdn.net/shazhenzhong/archive/2009/01/10/3744746.aspx
說明
Jbpm的開發(fā)流程可以按如下幾步進(jìn)行:流程的定義、流程的發(fā)布、流程實(shí)例的啟動(dòng)、流程節(jié)點(diǎn)的流轉(zhuǎn)、查看流
程節(jié)點(diǎn)圖片。本示例是在spring2.0、hibernate3.2、struts1.2下開發(fā)。
如果是其它版本的框架也很容易做程
序的遷移。
流程的定義
流程的定義建議使用jbpm提供的eclipse下的插件,圖形化配置插件安裝文件可以到jbpm-starters-kit-3.1.4"jbpm-designer"jbpm-gpd-feature"eclipse下找到,需注意版本。使用這種方
式可以把定義的流程描述的三個(gè)文件壓縮成zip包,統(tǒng)一的部署到數(shù)據(jù)庫中,方便b/s系統(tǒng)中顯示圖片當(dāng)前節(jié)點(diǎn)信息。
1插
件安裝
把jbpm-gpd-feature文件夾復(fù)制到C:"Program Files"MyEclipse-6.0M1"eclipse"plugins下,注意自己的ecplise路徑。
在C:"Program
Files"MyEclipse-6.0M1"eclipse"links文件夾下建立jbpm-gpd.link文件。內(nèi)容如下:path=C:""Program
Files""MyEclipse-6.0M1""eclipse""plugins""jbpm-gpd-feature。
這樣再重新啟動(dòng)eclipse就可以使用流程定義功能了。
2流
程的定義
在eclipse環(huán)境中選擇file->new->other下的jboss
jbpm->process definition流程定義。要在自己的項(xiàng)目文件中先指定文件要?jiǎng)?chuàng)建的文件夾。
這樣會(huì)產(chǎn)生三個(gè)文件:gpd.xml、processdefinition.xml、processimage.jpg。
processdefinition.xml為描述流程定義文件,本例為:
<?xml version="1.0" encoding="UTF-8"?>
<process-definition
name="文檔測試流程">
<start-state name="開始">
<transition name="提交張三審批" to="張三審批"></transition>
</start-state>
<task-node name="張三審批">
<task name="審批1">
<assignment
actor-id="張三"/>
</task>
<transition name="提交李四審批" to="李四審批"></transition>
</task-node>
<task-node name="李四審批">
<task name="審批2">
<assignment
actor-id="李四"/>
</task>
<transition name="提交王五審批" to="王五審批"></transition>
</task-node>
<task-node name="王五審批">
<task name="審批3">
<assignment
actor-id="王五"/>
</task>
<transition name="結(jié)束流程" to="結(jié)束"></transition>
</task-node>
<end-state name="結(jié)束"></end-state>
</process-definition>
processimage.jpg文件是定義流程產(chǎn)生的圖片、gpd.xml文件是圖形文件的座標(biāo)說明。用于
在b/s下顯示流程流轉(zhuǎn)的圖片位置。
本例中的gpd.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<process-diagram name="文檔測試流程" width="801" height="477">
<node name="開始"
x="308" y="4" width="140" height="40">
<transition name="提交張三審批">
<label x="5" y="-10"/>
</transition>
</node>
<node name="張三審批" x="310" y="90" width="140" height="40">
<transition name="提交李四審批">
<label x="5" y="-10"/>
</transition>
</node>
<node name="李四審批" x="313" y="192" width="140" height="40">
<transition name="提交王五審批">
<label x="5" y="-10"/>
</transition>
</node>
<node name="王五審批" x="308" y="307" width="140" height="40">
<transition name="結(jié)束流程">
<label x="5" y="-10"/>
</transition>
</node>
<node name="結(jié)束"
x="307" y="401" width="140" height="40"/>
</process-diagram>