原文地址:http://blog.csdn.net/shazhenzhong/archive/2009/01/10/3744746.aspx
說明
Jbpm的開發流程可以按如下幾步進行:流程的定義、流程的發布、流程實例的啟動、流程節點的流轉、查看流
程節點圖片。本示例是在spring2.0、hibernate3.2、struts1.2下開發。
如果是其它版本的框架也很容易做程
序的遷移。
流程的定義
流程的定義建議使用jbpm提供的eclipse下的插件,圖形化配置插件安裝文件可以到jbpm-starters-kit-3.1.4"jbpm-designer"jbpm-gpd-feature"eclipse下找到,需注意版本。使用這種方
式可以把定義的流程描述的三個文件壓縮成zip包,統一的部署到數據庫中,方便b/s系統中顯示圖片當前節點信息。
1插
件安裝
把jbpm-gpd-feature文件夾復制到C:"Program Files"MyEclipse-6.0M1"eclipse"plugins下,注意自己的ecplise路徑。
在C:"Program
Files"MyEclipse-6.0M1"eclipse"links文件夾下建立jbpm-gpd.link文件。內容如下:path=C:""Program
Files""MyEclipse-6.0M1""eclipse""plugins""jbpm-gpd-feature。
這樣再重新啟動eclipse就可以使用流程定義功能了。
2流
程的定義
在eclipse環境中選擇file->new->other下的jboss
jbpm->process definition流程定義。要在自己的項目文件中先指定文件要創建的文件夾。
這樣會產生三個文件: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="結束流程" to="結束"></transition>
</task-node>
<end-state name="結束"></end-state>
</process-definition>
processimage.jpg文件是定義流程產生的圖片、gpd.xml文件是圖形文件的座標說明。用于
在b/s下顯示流程流轉的圖片位置。
本例中的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="結束流程">
<label x="5" y="-10"/>
</transition>
</node>
<node name="結束"
x="307" y="401" width="140" height="40"/>
</process-diagram>