zoukankan      html  css  js  c++  java
  • 002 流程部署

    一 .基本的流程图

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

    二 .流程部署

    在这个流程之中,我们需要注意的下面的几点.流程图之后总我们定义的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来启动,默认使用的就是最新版本的流程定义.

  • 相关阅读:
    20189222 《网络攻防技术》第十周作业
    20189222 《网络攻防技术》第九周作业
    20189222 《网络攻防技术》第八周作业
    20189222 《网络攻防技术》第七周作业
    20189209 《网络攻防技术》第六周作业
    20189209 《网络攻防技术》第五周作业
    20189209 《网络攻防技术》第四周作业
    20189209 《网络攻防技术》第三周作业
    20189209 《网络攻防技术》第二周作业
    快速排序+折半查找 c++
  • 原文地址:https://www.cnblogs.com/trekxu/p/10381253.html
Copyright © 2011-2022 走看看