`
dou_shini8820
  • 浏览: 78168 次
社区版块
存档分类
最新评论

jbpm开发步骤-流程定义

    博客分类:
  • JBPM
 
阅读更多

1、新建一个java工程,然后导入lib下的所有jar,和jbpm.jar

 

2、把以下几个自带的配置文件复制到src下面,因为jbpm此时使用的是内存数据库,因此不需要配置

/jbpmTest/src/jbpm.cfg.xml

/jbpmTest/src/jbpm.hibernate.cfg.xml

/jbpmTest/src/jbpm.mail.properties

/jbpmTest/src/jbpm.mail.templates.xml

/jbpmTest/src/logging.properties

 

3、在src下面建立hello.jdpl.xml文件,创建一个简单的流程定义

 

4、建立一个测试类,代码如下:

 

private ProcessEngine engine;
	private RepositoryService repositoryService;
	
	 public deployTest() {
		engine = Configuration.getProcessEngine();
		repositoryService = engine.getRepositoryService();
	}
	 
	 /**
	 * 发布流程定义
	 */
	public void testDeploy(){
		String deploymentId =  repositoryService.createDeployment().addResourceFromClasspath("hello.jpdl.xml").deploy();
		 List<ProcessDefinition> list = repositoryService.createProcessDefinitionQuery().list();
			for (ProcessDefinition processDefinition : list) {
				System.out.println("注意了:"+processDefinition.getId()+":"+processDefinition.getName());
			}
	 }

 

 

注意:jbpm一切以processEngine为基础的,它的创建是Configuration获取的

 

创建流程定义createDeployment后还需要deploy()一下

 

repositoryService.createDeploymentQuery()是查所有的deployment的,而不是 
repositoryService.createProcessDefinitionQuery()

同样,processDefinition.getDeploymentId()只是获得deployment的id,而不是流程定义的id,processDefinition.getId()才是,他对应hello-1。processDefinition.getName()的名字就是jpdl文件中process name="hello"。

 

级联删除某个流程定义下所有的信息:

 

repositoryService.deleteDeploymentCascade(deploymentId);
 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics