码迷,mamicode.com
首页 > 其他好文 > 详细

002 流程部署

时间:2019-02-14 23:51:37      阅读:223      评论:0      收藏:0      [点我收藏+]

标签:lis   print   efi   default   repo   基本   get   数据   http   

一 .基本的流程图

本次我们使用一个请假的流程进行分析,在后面的学习之中也使用这个流程.首先我们需要完成的就是流程部署的实现.

二 .流程部署

技术图片

在这个流程之中,我们需要注意的下面的几点.流程图之后总我们定义的id是leave,这个就是流程定义的key.

 

三 .完成流程部署

		// 获取流程引擎对象
		ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();

		// 获取流程存储对象
		RepositoryService repositoryService = processEngine.getRepositoryService();

		ZipInputStream zipInputStream = new ZipInputStream(new ClassPathResource("diagram/leave.zip").getInputStream());

		// 创建部署对象
		Deployment deployment = repositoryService.createDeployment().name("第一个部署的流程").addZipInputStream(zipInputStream)
				.deploy();

		// 获取自动生成的部署id
		System.out.println(deployment.getId());

 

为了完成流程部署,我们使用了RepositoryService 对象,该对象之中包含一个部署对象.我们看部署完之后数据库的变化.

 

四 .数据库的变化

技术图片

我们发现在流程部署表之中多了一个部署的记录.

技术图片

在流程定义之中多了一条记录,这个记录描述的就是流程图部署的结果.实际上就是一个xml文件的解析,我们看到了key这个字段就是流程图之中的id.

技术图片

在二进制资源表之中多了两条记录,存储的就是bpmn记录和对应的流程图.

五 . 流程部署的查询

		// 获取流程引擎对象
		ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();

		// 获取流程存储对象
		RepositoryService repositoryService = processEngine.getRepositoryService();

		// 获取部署查询对象
		DeploymentQuery createDeploymentQuery = repositoryService.createDeploymentQuery();

		// 查询所有的部署列表
		List<Deployment> list = createDeploymentQuery.list();

		list.forEach(System.out::println);

我们使用流程部署查询对象完成部署的查询(DeploymentQuery).

六.流程定义的查询

// 获取流程引擎对象
		ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
		// 获取流程存储对象
		RepositoryService repositoryService = processEngine.getRepositoryService();
		// 获取流程定义查询对象
		ProcessDefinitionQuery processDefinitionQuery = repositoryService.createProcessDefinitionQuery();
		// 查询所有的部署列表
		List<org.activiti.engine.repository.ProcessDefinition> list = processDefinitionQuery.list(); 

 七. 查询最新的流程定义

// 获取流程引擎对象
		ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
		// 获取流程存储对象
		RepositoryService repositoryService = processEngine.getRepositoryService();
		// 获取流程定义查询对象
		ProcessDefinitionQuery processDefinitionQuery = repositoryService.createProcessDefinitionQuery();
		// 查询所有的部署列表
		List<org.activiti.engine.repository.ProcessDefinition> list = processDefinitionQuery.list();  

八.部署同key的流程文件

我们再次部署相同的流程,看看数据库的变化

技术图片

我们发现新的流程部署之中多了一条记录,重点是流程定义表的内容.

技术图片

我们发现在同key的情况下,版本号升级了.这就是activiti之中的策略,使用版本号升级的方式.我们在后面启动流程的时候都会使用key来启动,默认使用的就是最新版本的流程定义.

 

002 流程部署

标签:lis   print   efi   default   repo   基本   get   数据   http   

原文地址:https://www.cnblogs.com/trekxu/p/10381253.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!