JBPM4.4简介(五)-流程定义与部署(转)
?
在流程定义设计器上,设计流程:

?
注意中间要使用Task节点,最终定义好的流程定义文件如下所示:
?
<?xmlversion="1.0" encoding="UTF-8"?>
?
<processkey="LEAVE" name="请假单"xmlns="http://jbpm.org/4.4/jpdl">
?? <startform="baoxiao" g="234,7,48,48" name="start1">
????? <transitiong="-71,-17" name="提交给张三审批"to="张三审批"/>
?? </start>
?? <taskassignee="张三"g="215,113,92,52" name="张三审批">
????? <transitiong="-71,-17" name="提交给李四审批"to="李四审批"/>
?? </task>
?? <taskassignee="李四"g="218,216,92,52" name="李四审批">
????? <transitiong="-47,-17" name="to end1" to="end1"/>
?? </task>
?? <endg="247,326,48,48" name="end1"/>
</process>
?
在完成流程的设计之后,我们可以编写代码,把这个流程定义文件部署到数据库中:
publicclassJbpm_01_DeployProcessDefinition extendsTestCase{
???
??? //把流程定义文件的相关信息保存到数据库中!
??? publicvoidtestDeployProcessDefinition(){
??????
?????? //流程引擎
?????? ProcessEngine engine = newConfiguration()
?????????? .setResource("jbpm.cfg.xml").buildProcessEngine();
??????
?????? //从流程引擎中获得跟数据库操作有关的服务
?????? engine.getRepositoryService()
?????????? .createDeployment() //现在要部署流程定义
?????????? .addResourceFromClasspath("process01.jpdl.xml") //添加流程定义文件
?????????? .deploy(); //部署,将流程定义的相关信息插入数据库\
??? }
}
?
在运行完上述代码之后,我们可以到数据库中查看相关的信息:

?
上面的数据库表,描述了有关ProcessDefinition对象的信息。ProcessDefinition对象有:name,id,key,version等属性。
?
Name就是给人类看的名称,比如:“请假单”
Key就是一个键值,比如:LEAVE
Version是版本号,对于相同的流程定义(名称和KEY相同),如果重复部署(比如上述代码多次运行),其version将一直递增。
Id就是KEY和VERSION组合的值。比如:LEAVE-1
?
上面数据库表中呈现的pdid,pdkey,pdversion和OBJNAME_字段的值,就是这些属性。