开始自己着手尝试:先发布自己第一个流程:
用Eclipse画流程图,除了开始和结束节点外,只有一个Task节点:
<process name="testfile" xmlns="http://jbpm.org/4.4/jpdl" key="testfile1" version="1" description="第一个测试程序"> ....
按照用户手册上的发布流程,写了一个极其简单的发布程序:
1. 按照 install中的build.xml,使用create.user.webapp,把生成的WEB-INF/classes中的3个配置文件加入到工程中
jbpm.cfg.xml, jbpm.hibernate.cfg.xml,jbpm.mail.properties
其中数据库的配置在生成的时候已经修改过了
2. 简单的代码:
public void deploy(){ ProcessEngine processEngine = new Configuration() .buildProcessEngine(); RepositoryService repositoryService = processEngine.getRepositoryService(); String deploymentid = repositoryService.createDeployment() .addResourceFromClasspath("testfile.jpdl.xml") .deploy(); }
执行上述过程,一个流程就发布好了
发布后DB中的结果:
在表:JBPM4_DEPLOYMENT中增加了一条记录:
DBID_=20001 //(这个就是程序中deploymentid返回获得的值)
NAME_ 为空,
TIMESTAMP_:0
STATE_: active
在JBPM4_DEPLOYPROP中多了几条记录:
其中:DEPLOYMENT_: 20001
OBJNAME_:testfile
具体的属性为(key_:stringvalue_): langid:jpdl-4.4 pdid:testfile1-1 pdkey:testfile1
还有一条记录(key_:longval_) pdversion:1
问题:
proceess的name:没有进入到数据库中
修改xml文件进行重新发布:
把key、version全部去掉,进行再次发布,
程序报错,说:key='testfile' and version='1' 已经存在不能发布。
把key="testfile1" 加在xml文件中,进行再次发布
发布成功。
看数据库中, DBID_有一个新的值,testfile的version也升为了2
这么看来,当没有key的时候,key就取name的值,版本号定义为1