读书人

JBPM4.4简介(5)-流程定义与部署(转)

发布时间: 2012-07-22 19:31:15 作者: rapoo

JBPM4.4简介(五)-流程定义与部署(转)

?

在流程定义设计器上,设计流程:

JBPM4.4简介(5)-流程定义与部署(转)

?

注意中间要使用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(); //部署,将流程定义的相关信息插入数据库\

??? }

}

?

在运行完上述代码之后,我们可以到数据库中查看相关的信息:

JBPM4.4简介(5)-流程定义与部署(转)

?

上面的数据库表,描述了有关ProcessDefinition对象的信息。ProcessDefinition对象有:name,id,key,version等属性。

?

Name就是给人类看的名称,比如:“请假单”

Key就是一个键值,比如:LEAVE

Version是版本号,对于相同的流程定义(名称和KEY相同),如果重复部署(比如上述代码多次运行),其version将一直递增。

Id就是KEY和VERSION组合的值。比如:LEAVE-1

?

上面数据库表中呈现的pdid,pdkey,pdversion和OBJNAME_字段的值,就是这些属性。

读书人网 >软件开发

热点推荐