Activiti进阶(九)——开始活动节点

一、流程图

Activiti进阶(九)——开始活动节点_第1张图片

二、部署流程定义+启动流程实例+查询流程实例+查询历史流程实例

        @Test
	public void deployementAndStartProcess(){
		
		String resourceNamebpmn = "start.bpmn";
		String resourceNamepng  = "start.png";
		InputStream inputStreamBpmn = this.getClass().getResourceAsStream("start.bpmn");
		InputStream inputStreamPng  = this.getClass().getResourceAsStream("start.png");
		  /**1、部署流程定义*/
		  Deployment deployment = processEngine.getRepositoryService()
		                  .createDeployment()//创建部署对象  
		                  .name("开始流程")
		                  .addInputStream(resourceNamebpmn, inputStreamBpmn)//部署加载资源文件 
		                  .addInputStream(resourceNamepng, inputStreamPng)
		                  .deploy();
		  System.out.println("部署ID:"+deployment.getId());  
		  
		  /**2、启动流程实例*/
		  String processDefinitionKey ="start";
		  ProcessInstance pi = processEngine.getRuntimeService()//获取运行时服务对象
		                                    .startProcessInstanceByKey(processDefinitionKey);//使用流程定义的key的最新版本启动流程
		  System.out.println("流程实例ID:"+pi.getId());  
		  System.out.println("流程定义的ID:"+pi.getProcessDefinitionId()); 
		  
		  //当流程结束后,流程实例被删除,运行时服务对象不能查询
		  /**3、判断流程是否结束,查询正在执行的执行对象表(act_ru_execution)或者流程实例表()*/
		  ProcessInstance rpi =  processEngine.getRuntimeService()
		                                      .createProcessInstanceQuery()
		                                      .processInstanceId(pi.getId())
		                                      .singleResult();
		  /**4、如果rpi==null则流程结束*/
		  if(rpi == null){
			  /**查询历史获取流程相关信息*/
			HistoricProcessInstance hpi =  processEngine.getHistoryService()
					                          //.createHistoricActivityInstanceQuery()
			                                            .createHistoricProcessInstanceQuery()
			                                            .processInstanceId(pi.getId())//使用流程实例ID查询
			                                            .singleResult();
			System.out.println(hpi.getId()+"  "+hpi.getStartTime()+"  "+hpi.getEndTime());
		  }
		    
	}

三、总结

      1、结束节点是没有出口的

      2、其它节点有一个或者多个出口

           如果有一个出口则代表是单线流程

           如果有多个出口则代表开启并发流程

你可能感兴趣的:(Activiti进阶(九)——开始活动节点)