# demo41 **Repository Path**: FlowableDemo/demo41 ## Basic Information - **Project Name**: demo41 - **Description**: 通过服务节点在当前流程中,启动另一个独立流程,两个独立流程不会跳转 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-01-22 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ------ 环境: [jkd8+]() [mysql5.6+]() ## 一、定义两个独立流程 - 独立流程1定义 在此流程中定义了一个服务任务,在完成**user1任务**的时候指定**下一个流程定义key**,当执行实例到达**服务任务节点**的时候,根据当前流程中的变量("nextDefinitionKey"),根据此变量就触发独立流程2启动,并传递当前流程的变量给独立流程2。 ![](./images/process1.png) - 独立流程2定义 ![](./images/process2.png) ## 二、测试 ### 2.1 分别部署两个流程 - 部署流程1 ``` 运行deployIndependentprocess1() ``` - 部署流程2 ``` 运行deployIndependentprocess2() ``` - 完成流程1中的user1任务 ```java /** * 完成任务 */ @Test public void complete() { String taskId = "20011"; Map variables = new HashMap(); variables.put("sum", 20); variables.put("nextDefinitionKey", "Independentprocess2");//流程2的流程定义key taskService.complete(taskId,variables); } ``` - 查看任务表,出现了两条任务记录: 一条是流程1的任务user2 一条是流程2的任务processuer2 - 完成processuer2任务 完成processuer2任务后,可以看到流程走到了usertask2:因为 sum <30。 ``` /** * 完成任务 */ @Test public void complete() { String taskId = "20056"; taskService.complete(taskId); } ``` 由此可以看到利用服务任务,成功的在流程1中启动了流程2。