Camunda Sub Process

一:内嵌子流程

在这里插入图片描述

repositoryService.createDeployment().name("内嵌子流程").addClasspathResource("bpmn/embed_sub_process.bpmn").deploy();
identityService.setAuthenticatedUserId("huihui");
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("EmbedSubProcess");
Task task = taskService.createTaskQuery() .processInstanceId(processInstance.getId()).singleResult();
taskService.complete(task.getId());

ACT_HI_TASKINST:上传vlog节点已经审批完成
在这里插入图片描述

ACT_RU_TASK:进入子流程,路由网关为并行网关,所以同时出现3个任务。
在这里插入图片描述

ACT_RU_EXECUTION

  • 父流程和子流程的流程实例id是同一个。
  • SEQUENCE_COUNTER_ 序列计数器最小的记录对应的ID_和流程实例ID一样。
  • 父流程实例的ROOT_PROC_INST_ID_有值,PARENT_ID_为null。
    在这里插入图片描述
List<Task> list = taskService.createTaskQuery().processInstanceId("097a8235-b080-11ee-982f-92e97825df95").list();
for (Task task : list) {
   
    taskService.complete(task.getId());
}

ACT_RU_TASK:流程来到上传成功节点。
在这里插入图片描述

ACT_RU_EXECUTION:数据变成了一条,活动来到上传成功。
在这里插入图片描述

二:多实例内嵌子流程

子流程也支持多实例(并发/顺序)执行。
在这里插入图片描述

在这里插入图片描述
当任务为外部任务时可以设置任务的优先级,默认为50,假如“批量上传vlog”上传10个,如果没有设置优先级即都为50,当第一次循环进入“排队检查”,后面可能执行后面的校验节点,而第二轮循环如果第二轮的“排队检查”没有执行,那么第二轮的后面检查节点也得不到执行的机会,所以我们循环10轮,尽可能先将10轮中的“排队检查”优先执行完,这样会生成10*3的检查节点,这样节点就可以并发去执行,这样就减少了不必要的等待时间。

多实例,节点执行有先后,尽可能提高前面节点的优先级,保证前面节点优先执行。

repositoryService.createDeployment().name("多实例内嵌子流程").addClasspathResource("bpmn/embed_sub_process_multi.bpmn").deploy();
identityService.setAuthenticatedUserId("huihui");
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("EmbedSubProcessMulti");
Task task = taskService.createTaskQuery() .processInstanceId(processInstance.getId()).singleResult();
VariableMap variables = Variables.createVariables().putValue("fileList", Arrays.asList("a.mp4", "b.rmvb"));
taskService.complete(task.getId(), variables);
camunda:
  bpm:
    client:
      base-url: http://localhost:8080/engine-rest
      # 一次拉取10个任务,提高并发效率
      max-tasks: 10

在这里插入图片描述

三:调用流程 Call Activity

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

<dependency>
    <groupId>org.codehaus.groovy</groupId>
    <artifactId>groovy-all</artifactId>
    <version>3.0.9</version>
    <type>pom</type>
</dependency>
<dependency>
    <groupId>org.codehaus.groovy.modules.http-builder</groupId>
    <artifactId>http-builder</artifactId>
    <version>0.7.1</version>
</dependency>
repositoryService.createDeployment().name("调用流程").addClasspathResource("bpmn/main_process.bpmn").deploy();
identityService.setAuthenticatedUserId("huihui");
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("MainProcess");
Task task = taskService.createTaskQuery().processInstanceId(processInstance.getId()).singleResult();
VariableMap variables = Variables.createVariables().putValue("sourcePath", "xxx.rmvb");
taskService.complete(task.getId(), variables);

ACT_RU_TASK:进入调用的流程。
在这里插入图片描述

ACT_RU_EXECUTION:

  • 调用流程和内嵌子流程完全不一样,调用流程会生成2个不同的流程实例。
  • 两个流程的ROOT_PROC_INST_ID_值一样。
  • 父子流程通过 SUPER_EXEC_ 字段进行关联。
    在这里插入图片描述
List<Task> list = taskService.createTaskQuery().processInstanceId("719d2260-b08b-11ee-8cfc-92e97825df95").list();
for (Task task : list) {
   
    taskService.complete(task.getId());
}

在这里插入图片描述
ACT_RU_VARIABLE:Out Mappings中的sourceResult变量赋值成功了。
在这里插入图片描述

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-01-13 11:48:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-13 11:48:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-13 11:48:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-13 11:48:03       18 阅读

热门阅读

  1. Python修改二值图像某特定颜色

    2024-01-13 11:48:03       34 阅读
  2. 微服务入门介绍(一)

    2024-01-13 11:48:03       25 阅读
  3. 编程笔记 html5&css&js 037 CSS选择器

    2024-01-13 11:48:03       25 阅读
  4. textarea文本框根据输入内容自动适应高度

    2024-01-13 11:48:03       30 阅读
  5. Linux部署excalidraw-cn白板

    2024-01-13 11:48:03       33 阅读
  6. 行为型设计模式—职责链模式

    2024-01-13 11:48:03       28 阅读
  7. AcWing:5406. 松散子序列

    2024-01-13 11:48:03       29 阅读
  8. 鸿蒙系列--Http

    2024-01-13 11:48:03       33 阅读
  9. 常见的HTTP接口超时问题出现原因及解决办法

    2024-01-13 11:48:03       39 阅读
  10. Elasticsearch本地单机配置以及php组件使用记录

    2024-01-13 11:48:03       37 阅读