02-jbpm工作流管理

工作流管理:其它参数详见上一篇介绍:http://blog.csdn.net/zhengyong15984285623/article/details/9282047

package cn.edu.zust.itee;

import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;
import java.util.Set;

import org.jbpm.api.Configuration;
import org.jbpm.api.ProcessDefinition;
import org.jbpm.api.ProcessDefinitionQuery;
import org.jbpm.api.ProcessEngine;
import org.junit.Test;

/**
 * @author 郑勇
 * 2013-07-09 15:47
 */

//注意:deploymentId对应jbpm4_deployment表中的"DBID_"字段;

public class ProcessDefinitionManage {
	
	//单例模式获取流程引擎
	//singleton = new Configuration().setResource("jbpm.cfg.xml").buildProcessEngine();
	private ProcessEngine processEngine = Configuration.getProcessEngine(); 
	
	//1.部署流程定义(添加)
	//相关表:jbpm4_deployment,jbpm4_deployprop,jbpm4_lob
	@Test
	public void deploy(){
		String deploymentId = processEngine.getRepositoryService()
					 .createDeployment()
					 .addResourceFromClasspath("helloword/test.jpdl.xml")
					 .addResourceFromClasspath("helloword/test.png")
					 .deploy();
		System.out.println(deploymentId);
	}
	
	//2.查询所有流程定义
	@Test
	public void findAll(){
		//查询
		List<ProcessDefinition> list = processEngine.getRepositoryService()
													.createProcessDefinitionQuery()
													.orderAsc(ProcessDefinitionQuery.PROPERTY_KEY)
													.list();
		//显示
		for(ProcessDefinition pd : list){
			System.out.println("id="+pd.getId()                 //格式{key}-{version}
			+",name="+pd.getName()      //流程定义"xxx.jpdl.xml"中根元素的name属性的值
			+",key="+pd.getKey()        //流程定义"xxx.jpdl.xml"中根元素的key属性的值(不写,默认与name属性一致)
			+",version="+pd.getVersion()//流程定义"xxx.jpdl.xml"中根元素的version属性的值(不写,key一样时,默版本认自增)
			+",deploymentId="+pd.getDeploymentId());
		}
	}
   
	//3.删除流程定义(其实是删除Deployment)
	@Test
	public void delete(){
		String deploymentId = "1";
		//删除Deployment,如果有关联信息,就抛异常
//		processEngine.getRepositoryService().deleteDeployment(deploymentId);
		//删除Deployment,如果有关联信息,就级联删除
		processEngine.getRepositoryService().deleteDeploymentCascade(deploymentId);
		
	}
	
	//4.获取部署时某文件的资源(查看流程图)
	@Test
	public void getResourceFromDeployment() throws Exception{
		String deploymentId = "40001";
		String resourceName  = "helloword/test.png";
		
		//获取某Deployment中所有资源文件的名称
		Set<String> set = processEngine.getRepositoryService().getResourceNames(deploymentId);
		for(String flieName : set){
			System.out.println(flieName);
		}
		
		//获取某Deployment中所有资源文件
		InputStream in  = processEngine.getRepositoryService().getResourceAsStream(deploymentId, resourceName);
		//保存在E盘中
		OutputStream out = new FileOutputStream("E://process.png");
		for(int b = -1;(b=in.read())!= -1;){
			out.write(b);
		}
		in.close();
		out.close();
	}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值