flowable子流程实现

flowable子流程
即在主流程之外去执行一个小的流程
注子流程可以套子流程

以下的我实现的流程图:

flowable子流程实现_第1张图片
以下是我的BPMN2.0的XML:

  
    子流程
    
    
    
    
    
    
    
      
      
      
      
      
      
      
    
    
    
  


以下是我Java API 的编程代码:

		//主体流程的开始
		//创建数据库链接信息 链接 库、用户名、密码  请自己编辑
		ProcessEngineConfiguration cfg = new StandaloneProcessEngineConfiguration()
		.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/******?characterEncoding=UTF-8")
		.setJdbcUsername("****")
		.setJdbcPassword("****")
		.setJdbcDriver("com.mysql.jdbc.Driver")
		.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_FALSE);
		// 通过数据库链接信息         创建Flowable流程引擎 Create Flowable process engine
		ProcessEngine processEngine = cfg.buildProcessEngine();
		// 获取Flowable服务 Get Flowable repositoryService
		RepositoryService repositoryService = processEngine.getRepositoryService();
		// 获取Flowable服务 Get Flowable runtimeService
		RuntimeService runtimeService = processEngine.getRuntimeService();
		// 获取taskService对象 Get the first task
		TaskService taskService = processEngine.getTaskService();
		
		Deployment deploy = repositoryService.createDeployment().addClasspathResource("processes/US_ServiceTask/TestsubProcessUS.bpmn20.xml").deploy();
		ProcessInstance process = runtimeService.startProcessInstanceByKey("XMSubProcessUS");
		Task task = taskService.createTaskQuery().processInstanceId(process.getId()).singleResult();
		System.out.println("1 task is="+task);
		if (task!=null) {
			System.out.println("提交 task is="+task.getName());
			taskService.complete(task.getId());
		}
		task = taskService.createTaskQuery().processInstanceId(process.getId()).singleResult();
		System.out.println("2 taks is="+task);
		if (task!=null) {
			System.out.println("提交 task is="+task.getName());
			taskService.complete(task.getId());
		}
		
		task = taskService.createTaskQuery().processInstanceId(process.getId()).singleResult();
		System.out.println("3 task is="+task);
		if (task!=null) {
			System.out.println("提交 task is="+task.getName());
			taskService.complete(task.getId());
		}
		task = taskService.createTaskQuery().processInstanceId(process.getId()).singleResult();
		System.out.println("task is="+task);
		//关闭
		processEngine.close();
		System.exit(0);

 

以上是成功demo

以上如有问题可评论  我看到立马回答

请不要所以转载 !!!

你可能感兴趣的:(flowable)