工作流-activity-callactivity-调用子流程-入门

流程图
工作流-activity-callactivity-调用子流程-入门_第1张图片
子流程图
工作流-activity-callactivity-调用子流程-入门_第2张图片
主流程图
工作流-activity-callactivity-调用子流程-入门_第3张图片
代码环节

//加载配置文件获取核心工厂类
    ProcessEngine processEngine=ProcessEngines.getDefaultProcessEngine();
    
	/**
	 * 部署流程
	 */
    @Test
    public void getProceesDefintion() {
      	//利用流的形式获取 bpmn png 
		InputStream intInputStreamBpmn=this.getClass().getResourceAsStream("Callactivity_01.bpmn");
	  	InputStream intInputStreamPng=this.getClass().getResourceAsStream("Callactivity_01.png");
	  	InputStream intInputStreamBpmnCallBpmn=this.getClass().getResourceAsStream("Callactivity.bpmn");
	  	InputStream intInputStreamPngCallPng=this.getClass().getResourceAsStream("Callactivity.png");
        Deployment deployment=  processEngine.getRepositoryService()//获取流程部署对象相关的service
                       .createDeployment()//创建一个部署对象
                       .name("请假申请")//完成部署名称
                       .addInputStream("Callactivity_01.bpmn", intInputStreamBpmn)
	  	               .addInputStream("Callactivity_01.png", intInputStreamPng)
	  	               .addInputStream("Callactivity.bpmn", intInputStreamBpmnCallBpmn)
	  	               .addInputStream("Callactivity.png",intInputStreamPngCallPng)
                       .deploy();//完成部署
          System.err.println("部署名称:"+deployment.getName());
          System.err.println("部署id:"+deployment.getId());
	   
    }
    /**
     * 启动流程实例
     */
	@Test
    public void startProcessInstance() {
		String processDefinitionKey="Callactivity";
		//使用key 会安装最新的版本
		Map map=new HashMap();
		map.put("inputUser","cc");
		String businessKey="EtEmergencyinfo:1";
    	ProcessInstance poInstance=	processEngine.getRuntimeService()
		             .startProcessInstanceByKey(processDefinitionKey,businessKey,map);
		             System.err.println("流程定义id:"+poInstance.getId());
		             System.err.println("流程定义名称:"+poInstance.getName());
		             System.err.println("流程实列Id:"+poInstance.getProcessDefinitionId());
    }
	/**
	 * 查看个人任务
	 *
	 */
	@Test
	public void getTask() {
	Task task=processEngine.getTaskService().createTaskQuery().taskAssignee("cc").singleResult();
		System.err.println(task.getId());
		System.err.println(task.getName());
	}
	
	/**
	 * 完成个人任务
	 */
	@Test
	public void comeleteMypersonalTask() {
		//任务id
		String taskId="7508";
		Map varibles=new HashMap();
		varibles.put("message", "主管审批");
		//完成任务的同时同时设置流程变量
		System.err.println("任务id已完成"+taskId);
		processEngine.getTaskService().complete(taskId);
		System.err.println("执行完成");
	}
}

你可能感兴趣的:(工作流)