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

流程定义

流程定义,是一个XML文件,JBPM4中常用的流程定义语言是:JPDL(JBPM Process Definition Language)。

我们可以选择新建一个流程定义:

 

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

 

注意中间要使用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_字段的值,就是这些属性。

你可能感兴趣的:(JBPM4.4)