JBPM4.4定义流程名及key、version相关规则

简单的JBPM流程文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<process name="测试流程" xmlns="http://jbpm.org/4.4/jpdl" key="testKey" version="1">
  <start g="20,20,48,48">
    <transition to="review" />
  </start>
  <task name="review"
        assignee="#{order.owner}"
        g="96,16,127,52">
     <transition to="wait" />
  </task>
  <state name="wait" g="255,16,88,52"/>
</process>


JBPM流程xml文件的process属性包括:name、key、version
      1、name为流程名称。
      2、key为流程关键字,如果不指定key则为(name-version),指定key则为(key-version)
      3、version为流程版本。

process节点规则:
      1、name为必须属性,否则会报如下错误:
   
xml validation error: cvc-complex-type.4: Attribute 'name' must appear on element 'process'. 
[line=3 column=44 ]: org.xml.sax.SAXParseException: cvc-complex-type.4: Attribute 'name' must appear on element 'process'. error: attribute 

      2、当只有name属性时,上传流程JBPM会根据该name去搜索数据库是否存在按照这个name定义的流程,如果存在,则接着查找该name对应的key,如果这个key的定义规则是(name-version),则可以上传成功,如果查询到的key的定义规则是(key-version),则会上传失败,如下所示:
error: invalid key '测试流程1' in process 测试流程1. Existing process has name '测试流程1' and key 'k'

         这个问题,可以通过指定相同名字的key解决,上传流程成功后,版本加1.
      3、当process节点的name和key属性都存在,name和key的其中一个如果已经在JBPM的数据库存在,则必须和数据库的一致,否则也会报错。
      4、如果上传的流程想要自己指定流程版本,需要增加version属性,但同样要注意process节点的name和key属性在数据库是否存在,如果存在则不能指定已有的version版本,否则会报错!


你可能感兴趣的:(jbpm)