activiti流程定义

ProcessDefinition(流程定义) : 用于描述流程规则相关的信息。

package com.liuzm.activiti.day1;

import java.io.File;
import java.io.InputStream;
import java.util.List;

import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.repository.DeploymentBuilder;
import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.repository.ProcessDefinitionQuery;
import org.apache.commons.io.FileUtils;
import org.junit.Test;

// ProcessDefinition(流程定义) : 用于描述流程规则相关的信息。
public class ProcessDefinationTest {
	//获取核心对象
	private ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
	
	// 1.部署流程
	@Test
	public void deployProcess() throws Exception {
		//获取仓库服务对象
		RepositoryService repositoryService = processEngine.getRepositoryService();
		//通过服务创建一个发布配置对象
		DeploymentBuilder builder = repositoryService.createDeployment();
	    //做配置
		builder.name("请假流程")
			   .addClasspathResource("qingjia2.bpmn")
			   .addClasspathResource("qingjia2.png");
		//发布
		builder.deploy();
	}

	
	// 2.查看流程定义信息
	@Test
	public void queryProcessDefination() throws Exception {
		//获取仓库服务对象
		RepositoryService repositoryService = processEngine.getRepositoryService();
		//创建查询对象
		ProcessDefinitionQuery query = repositoryService.createProcessDefinitionQuery();
		//添加查询条件
		String processDefinitionKey = "myProcess";
	    query
	    	 .processDefinitionKey(processDefinitionKey )
	    	 .orderByProcessDefinitionVersion().desc();
	    //调用list()方法查询
	    List<ProcessDefinition> list = query.list();
	    //遍历查询结果
	    for (ProcessDefinition pd : list) {
			System.out.println("id:"+pd.getId()+",name:"+pd.getName()+",key:"+pd.getKey()+",version:"+pd.getVersion());
		}
	}
	
	// 3.删除部署
	@Test
	public void deleteProcess() throws Exception {
		//获取仓库服务对象
		RepositoryService repositoryService = processEngine.getRepositoryService();
		//删除指定的流程
		String deploymentId = "1";
		repositoryService.deleteDeployment(deploymentId,true);//级联删除,慎用
		//调用上边的查看流程信息方法,看是否删除成功
		this.queryProcessDefination();
	}
	
	// 4.查看规则流程图
	@Test
	public void viewImage() throws Exception {
		//获取仓库服务对象
		RepositoryService repositoryService = processEngine.getRepositoryService();
		//获取图片
		String processDefinitionId = "myProcess:2:304";
		InputStream inputStream = repositoryService.getProcessDiagram(processDefinitionId );
		//将二进制流的图片输出到磁盘
		FileUtils.copyInputStreamToFile(inputStream, new File("F:\\2.png"));
	}
}

 RepositoryService是Activiti的仓库服务类。所谓的仓库指流程定义文档的两个文件:bpmn文件和流程图片。

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值