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变量赋值成功了。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/618065.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2023年最严重的10起0Day漏洞攻击事件

根据谷歌公司威胁分析小组去年 7 月发布的报告显示&#xff0c;2022 年全球共有 41 个 0day 漏洞被利用和披露。而研究人员普遍认为&#xff0c;2023 年被利用的 0Day 漏洞数量会比 2022 年更高&#xff0c;这些危险的漏洞被广泛用于商业间谍活动、网络攻击活动以及数据勒索攻击…

汽车级线性电压稳压器LM317MBSTT3G:新能源汽车的理想之选

LM317MBSTT3G是一款可调三端子正向线性稳压器&#xff0c;能够在 1.2 V 至 37 V 的输出电压范围内提供 500 mA 以上的电流。此线性电压稳压器使用非常简便&#xff0c;仅需两个外部电阻即可设置输出电压。另外&#xff0c;它采用内部电流限制、高温关断和安全区域补偿&#xff…

面试150-61(Leetcode138随机链表的复制)

代码&#xff1a; /* // Definition for a Node. class Node {int val;Node next;Node random;public Node(int val) {this.val val;this.next null;this.random null;} } */class Solution {public Node copyRandomList(Node head) {if(headnull)return null;Node n1 new…

whistle代理+mock轻松解决“页面端“测试接口没数据难题

0、whistle是什么&#xff1f;怎么用&#xff1f; 自行百度&#xff0c;此处不再赘述&#xff01; 1、示例演示&#xff08;交易订单测试&#xff09; 背景和痛点最近在测试一个小需求&#xff0c;需要涉及订单侧服务商品库侧服务库存侧服务财务侧线下交易服务。痛点主要在订…

ISO9001 质量体系认证对企业有什么好处?

ISO 9001质量体系认证对企业有许多潜在的好处&#xff0c;这些好处有助于提升企业的内部运作效率、客户满意度以及市场竞争力。以下是ISO 9001认证的一些主要好处&#xff1a; 1. 提高质量管理水平&#xff1a;ISO 9001要求企业建立一套完整的质量管理体系&#xff0c;这套体系…

redis夯实之路-键过期与发布订阅详解

设置键的生存时间或过期时间 Setex&#xff08;单位s&#xff09;&#xff0c;expire&#xff08;s&#xff09;&#xff0c;pexpire&#xff08;ms&#xff09;可以设置键的生存时间&#xff0c; Expirate&#xff0c;pexpirate设置键的过期时间&#xff08;timestamp的时间…

Spark 读excel报错,scala.MatchError

Spark3详细报错: scala.MatchError: Map(treatemptyvaluesasnulls -> true, location -> viewfs://path.xlsx, inferschema -> false, addcolorcolumns -> true, header -> true) (of class org.apache.spark.sql.catalyst.util.CaseInsensitiveMap)scala代码…

嵌入式培训机构四个月实训课程笔记(完整版)-Linux网络编程第三天-UDP编程(物联技术666)

技术咨询:wulianjishu666 上午:UDP网络编程 下午:UDP聊天程序的设计、select超时控制 教学内容: 1、udp和tcp都是在传输层上的协议,它们的区别 UDP协议与TCP协议的差异: TCP:面向连接,可靠 UDP:无连接,不可靠 ----------------------- UDP协议的优势: 支持…

openssl3.2 - 官方demo学习 - client-conf.c

文章目录 openssl3.2 - 官方demo学习 - client-conf.c笔记client-conf.c配置文件格式 - connect.cnf备注END openssl3.2 - 官方demo学习 - client-conf.c 笔记 client-conf.c client-arg.c是从命令行参数中得到TLS服务器ip/port. client-conf.c 从配置文件中读取TLS服务器ip…

【降龙算法】基于QT插件机制实现一个机器视觉算法小框架

机器视觉行业有各种各样的拖拉拽框架&#xff0c;也叫做低代码平台&#xff0c;例如国内海康的VisionMaster&#xff1a; 一个机器视觉框架需要包含各种算法模块&#xff0c;日志窗口&#xff0c;图像显示窗口等等&#xff0c;【降龙算法】就是做了一个入门级的机器视觉算法框…

群狼调研开展某连锁咖啡厅NPS及消费者心理研究调研

为了解某全国连锁咖啡厅的NPS值及消费者心理状况&#xff0c;找出咖啡厅在服务质量、产品等方面的差距和优势。群狼调研&#xff08;长沙消费者需求调研&#xff09;受客户委托开展连锁咖啡厅NPS及消费者心理研究调研。 本次调研主要分为以下步骤&#xff1a; 1.设计问卷&#…

(核心变量)全国上市公司对外开放程度+dofile+参考文献(2000-2022年)

上市公司的对外开放程度数据反映了这些公司在国际市场上的活跃度和全球化程度。这包括了它们的国际贸易参与度、跨国投资和合作、国际市场的营销和品牌推广策略&#xff0c;以及在不同国家和地区的业务布局。此外&#xff0c;这段时间内不同行业和公司的对外开放程度可能有明显…

Python基础(二十八、多态、抽象类)

文章目录 一、什么是多态&#xff1f;二、多态的实现1.通过继承实现多态2.抽象类实现多态2.1 抽象类的实现2.2 抽象类的注意事项2.3 总结 三、注意事项四、总结随笔练习抽象类 在面向对象编程中&#xff0c;多态是一种强大的概念&#xff0c;它允许不同类型的对象对相同的消息做…

C++学习笔记(三十六):c++ 线程

本节主要学习c线程。线程的简单代码示例 #include <iostream> #include <thread> static bool s_Finished false;void Work() {using namespace std::literals::chrono_literals;std::cout << std::this_thread::get_id() << std::endl;while (!s_Fin…

代码随想录算法训练营第七天|哈希表理论基础,454.四数相加II ,383. 赎金信 ,15. 三数之和 ,18. 四数之和

刷题建议 刷题建议与debug 代码随想录目前基本都有了视频讲解&#xff0c;一定要先看视频&#xff0c;事半功倍。写博客&#xff0c;将自己的感悟沉淀下来&#xff0c;不然会忘大家提问的时候&#xff0c;记得要把问题描述清楚&#xff0c;自己在哪一步遇到了问题&#xff0c…

记录一个Insert姿势引起的MySQL从库上查不到数据的问题

转载说明&#xff1a;如果您喜欢这篇文章并打算转载它&#xff0c;请私信作者取得授权。感谢您喜爱本文&#xff0c;请文明转载&#xff0c;谢谢。 问题描述&#xff1a; 某测试环境的MySQL用了两台节点&#xff0c;主从同步结构。忽然有研发同学反映说MySQL的主从不同步了。他…

大数据技术原理与应用期末复习(林子雨)

大数据技术原理与应用期末复习&#xff08;林子雨&#xff09; Hadoop的特性HBase编程实践NoSQL的四大类型键值数据库优点&#xff1a;缺点&#xff1a; 列族数据库优点&#xff1a;缺点&#xff1a; 文档数据库优点&#xff1a;缺点&#xff1a; 图数据库优点&#xff1a;缺点…

《设计模式的艺术》笔记 - 工厂方法模式

介绍 在简单工厂模式中&#xff0c;当系统中需要引入新的产品时&#xff0c;由于静态工厂方法通过所传入的参数的不同来创建不同的产品&#xff0c;这必定要修改工厂类的源代码&#xff0c;将违背开闭原则。因此&#xff0c;工厂方法模式应运而生。工厂方法模式是定义一个用于创…

超声波眼镜清洗机清洗眼镜会有伤害吗?适合洗眼镜超声波清洗机

眼镜作为日常生活中不可或缺的辅助视力工具&#xff0c;经常需要清洁保养以确保视力清晰和舒适佩戴。随着科技的发展&#xff0c;超声波眼镜清洗机成为越来越受欢迎的清洁方式。然而&#xff0c;很多人可能会担心使用超声波清洗机是否会对眼镜造成损害。但是可以很可以的告诉大…

【CMake报错解决】解决ITK和VTK版本不对应问题

ITKVTKGlue编译报错&#xff1a; CMake Error at C:/…/ITK/debug/lib/cmake/ITK-4.13/Modules/ITKVtkGlue.cmake:37 (vtk_module_config): Unknown CMake command “vtk_module_config”. 原因&#xff1a;ITK和VTK版本不对应导致找不到vtk_module_config文件&#xff0c;编译…