Activiti流程向后执行一步方法runtimeService().signal(executionId);

例子:

	@Test
	public void startProcessInstance(){
		//流程定义的key
		String processDefinitionKey = "receiveTask";
		ProcessInstance pi = processEngine.getRuntimeService()//与正在执行的流程实例和执行对象相关的Service
						.startProcessInstanceByKey(processDefinitionKey);//使用流程定义的key启动流程实例,key对应helloworld.bpmn文件中id的属性值,使用key值启动,默认是按照最新版本的流程定义启动
		System.out.println("流程实例ID:"+pi.getId());//流程实例ID    101
		System.out.println("流程定义ID:"+pi.getProcessDefinitionId());//流程定义ID   helloworld:1:4
		
		/**查询执行对象ID*/
		Execution execution1 = processEngine.getRuntimeService()
					.createExecutionQuery()//创建执行对象查询
					.processInstanceId(pi.getId())//使用流程实例ID查询
					.activityId("receivetask1")//当前活动的id,对应receiveTask.bpmn文件中的活动节点的id的属性值
					.singleResult();
		
		/**使用流程变量设置当日销售额,用来传递业务参数*/
		processEngine.getRuntimeService()
					.setVariable(execution1.getId(), "汇总当日销售额", 21000);
		/**向后执行一步,如果流程处于等待状态,使得流程继续执行*/
		processEngine.getRuntimeService()
					.signal(execution1.getId());
		/**查询执行对象ID*/
		Execution execution2 = processEngine.getRuntimeService()
					.createExecutionQuery()//创建执行对象查询
					.processInstanceId(pi.getId())//使用流程实例ID查询
					.activityId("receivetask2")//当前活动的id,对应receiveTask.bpmn文件中的活动节点的id的属性值
					.singleResult();
		
		
		/**从流程变量中获取汇总当日销售额的值*/
		Integer value = (Integer) processEngine.getRuntimeService()
											.getVariable(execution2.getId(), "汇总当日销售额");
		System.out.println("给老板发短信:金额时:"+value);
		
		/**向后执行一步,如果流程处于等待状态,使得流程继续执行*/
		processEngine.getRuntimeService()
					.signal(execution2.getId());
		
		
	}

测试代码来源于尚学堂教学视频runtimeService().signal(executionId)方法可以将流程继续往下执行一步

猜你喜欢

转载自blog.csdn.net/weixin_39941298/article/details/80907574
今日推荐