Camunda调用子流程案例

调用子流程

调用子流程是指子流程在主流程的外面。子流程一般是多个流程可重用的流程,也可以独立调用子流程。
可以对比编程中的方法抽取。子流程运行时,主流程也是等待状态。子流程结束,主流程继续。

立即体验,请访问JeecgFlow

BPMN设计

主流程

在这里插入图片描述

全局配置

在这里插入图片描述

上传视频

在这里插入图片描述

处理单个视频

在这里插入图片描述

确认上传

XML内容

<?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="Definitions_1" targetNamespace="http://bpmn.io/schema/bpmn"><bpmn:process id="Process_called_activity" name="调用子流程" isExecutable="true"><bpmn:startEvent id="StartEvent_1"><bpmn:outgoing>Flow_17do2o9</bpmn:outgoing></bpmn:startEvent><bpmn:sequenceFlow id="Flow_17do2o9" sourceRef="StartEvent_1" targetRef="Activity_0hvc1zt" /><bpmn:userTask id="Activity_0hvc1zt" name="上传视频" camunda:assignee="${customer}"><bpmn:extensionElements><camunda:formData><camunda:formField id="num" label="数量" type="long" defaultValue="1" /></camunda:formData></bpmn:extensionElements><bpmn:incoming>Flow_17do2o9</bpmn:incoming><bpmn:outgoing>Flow_1g4a6nc</bpmn:outgoing></bpmn:userTask><bpmn:sequenceFlow id="Flow_1g4a6nc" sourceRef="Activity_0hvc1zt" targetRef="Activity_0rb7n5o" /><bpmn:sequenceFlow id="Flow_08kb2ee" sourceRef="Activity_0rb7n5o" targetRef="Activity_11s7j95" /><bpmn:userTask id="Activity_11s7j95" name="确认上传" camunda:assignee="aaa"><bpmn:incoming>Flow_08kb2ee</bpmn:incoming><bpmn:outgoing>Flow_0udt21b</bpmn:outgoing></bpmn:userTask><bpmn:endEvent id="Event_0pgl9h9"><bpmn:incoming>Flow_0udt21b</bpmn:incoming></bpmn:endEvent><bpmn:sequenceFlow id="Flow_0udt21b" sourceRef="Activity_11s7j95" targetRef="Event_0pgl9h9" /><bpmn:callActivity id="Activity_0rb7n5o" name="处理单个视频" calledElement="process_sub_process_vedio"><bpmn:extensionElements><camunda:inputOutput /><camunda:out sourceExpression="${targetResult}" target="result" /><camunda:in sourceExpression="${videoName}" target="targetVideoName" /></bpmn:extensionElements><bpmn:incoming>Flow_1g4a6nc</bpmn:incoming><bpmn:outgoing>Flow_08kb2ee</bpmn:outgoing><bpmn:multiInstanceLoopCharacteristics camunda:collection="${videoNameList}" camunda:elementVariable="videoName" /></bpmn:callActivity></bpmn:process>
</bpmn:definitions>

子流程

在这里插入图片描述

视频格式检验。视频内容检查也是同养设置,不赘述。

在这里插入图片描述

监听器将处理结果进行设置

XML内容

<?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="Definitions_1" targetNamespace="http://bpmn.io/schema/bpmn"><bpmn:process id="process_sub_process_vedio" name="处理单个视频" isExecutable="true"><bpmn:startEvent id="StartEvent_1"><bpmn:outgoing>Flow_1uxffv9</bpmn:outgoing></bpmn:startEvent><bpmn:sequenceFlow id="Flow_1uxffv9" sourceRef="StartEvent_1" targetRef="Gateway_07vpeap" /><bpmn:parallelGateway id="Gateway_07vpeap"><bpmn:incoming>Flow_1uxffv9</bpmn:incoming><bpmn:outgoing>Flow_1705jbd</bpmn:outgoing><bpmn:outgoing>Flow_1v6afyz</bpmn:outgoing></bpmn:parallelGateway><bpmn:sequenceFlow id="Flow_1705jbd" sourceRef="Gateway_07vpeap" targetRef="Activity_1djbbmd" /><bpmn:serviceTask id="Activity_1djbbmd" name="视频格式" camunda:delegateExpression="${videoFormatTask}"><bpmn:incoming>Flow_1705jbd</bpmn:incoming><bpmn:outgoing>Flow_1fpwrea</bpmn:outgoing></bpmn:serviceTask><bpmn:sequenceFlow id="Flow_1v6afyz" sourceRef="Gateway_07vpeap" targetRef="Activity_1ap7i3h" /><bpmn:serviceTask id="Activity_1ap7i3h" name="内容审查" camunda:delegateExpression="${videoContentCheckTask}"><bpmn:incoming>Flow_1v6afyz</bpmn:incoming><bpmn:outgoing>Flow_06q9myy</bpmn:outgoing></bpmn:serviceTask><bpmn:parallelGateway id="Gateway_0r05r0g"><bpmn:incoming>Flow_1fpwrea</bpmn:incoming><bpmn:incoming>Flow_06q9myy</bpmn:incoming><bpmn:outgoing>Flow_1q8g3uy</bpmn:outgoing></bpmn:parallelGateway><bpmn:sequenceFlow id="Flow_1fpwrea" sourceRef="Activity_1djbbmd" targetRef="Gateway_0r05r0g" /><bpmn:sequenceFlow id="Flow_06q9myy" sourceRef="Activity_1ap7i3h" targetRef="Gateway_0r05r0g" /><bpmn:endEvent id="Event_0cycxs7"><bpmn:incoming>Flow_1q8g3uy</bpmn:incoming></bpmn:endEvent><bpmn:sequenceFlow id="Flow_1q8g3uy" sourceRef="Gateway_0r05r0g" targetRef="Event_0cycxs7"><bpmn:extensionElements><camunda:executionListener event="take"><camunda:script scriptFormat="groovy">def result="正常";
execution.setVariable("targetResult",result);</camunda:script></camunda:executionListener></bpmn:extensionElements></bpmn:sequenceFlow></bpmn:process></bpmn:definitions>

测试验证

在这里插入图片描述

使用关羽的账号,登陆camunda演示站点,并且发起流程

在这里插入图片描述

点击预览,可以看到流程运行轨迹

在这里插入图片描述

点击上一步的[处理单个视频]节点,可以看到多实例运行的情况。可以看到有2次运行记录。至此完成调用子流程的演示。

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

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

相关文章

AWTK HTML View 控件更新

AWTK HTML View 控件基于 Lite HTML 实现&#xff0c;从最初的版本开始&#xff0c;3 年多过去了&#xff0c;Lite HTML 做了大量的更新&#xff0c;最近抽空将 AWTK HTML View 控件适配到最新版本的 Lite HTML&#xff0c;欢迎大家使用。 AWTK HTML View 控件。HTML View 控件…

Android 开发避坑经验第三篇:RecyclerView 高效使用与常见问题解决

RecyclerView 是 Android 应用开发中最常用的 UI 组件之一,通常用于显示大量数据列表。尽管功能强大,但如果使用不当,会导致性能问题、数据错乱或滚动卡顿等问题。在本篇文章中,我们将探讨 RecyclerView 的一些常见坑点,提供解决方案,并附带代码示例。 1. 坑点:ViewHol…

LeetCode:3177. 求出最长好子序列 II 哈希表+动态规划实现N*K时间复杂度

3177. 求出最长好子序列 II 题目链接 题目描述 给你一个整数数组 nums 和一个非负整数k 。如果一个整数序列 seq 满足在下标范围 [0, seq.length - 2] 中 最多只有 k 个下标i满足 seq[i] ! seq[i 1] &#xff0c;那么我们称这个整数序列为好序列。请你返回 nums中好子序列的…

玩转Python Turtle库,实现满屏飘字的魔法!

前言 本文将教你如何使用Python的Turtle库&#xff0c;通过简单的编程实现满屏飘字的炫酷效果。无需复杂的编程知识&#xff0c;跟着我们的步骤&#xff0c;你也可以成为编程小达人&#xff01; 效果展示 开发过程 一、准备工作 首先&#xff0c;确保你的电脑上已经安装了Py…

12. GIS地图制图工程师岗位职责、技术要求和常见面试题

本系列文章目录&#xff1a; 1. GIS开发工程师岗位职责、技术要求和常见面试题 2. GIS数据工程师岗位职责、技术要求和常见面试题 3. GIS后端工程师岗位职责、技术要求和常见面试题 4. GIS前端工程师岗位职责、技术要求和常见面试题 5. GIS工程师岗位职责、技术要求和常见面试…

python如何读取excel文件内的数据

目录 前言一、安装openpyxl二、读取Excel数据总结前言 在Python中读取Excel数据,最常用的库之一是openpyxl(用于.xlsx格式)和xlrd(尽管xlrd从版本2.0开始不再支持.xlsx,仅支持旧的.xls格式)。然而,对于大多数现代应用来说,openpyxl是一个更好的选择,因为它支持.xlsx格…

2. GIS数据工程师岗位职责、技术要求和常见面试题

本系列文章目录&#xff1a; 1. GIS开发工程师岗位职责、技术要求和常见面试题 2. GIS数据工程师岗位职责、技术要求和常见面试题 3. GIS后端工程师岗位职责、技术要求和常见面试题 4. GIS前端工程师岗位职责、技术要求和常见面试题 5. GIS工程师岗位职责、技术要求和常见面试…

基础学习之——Docker 的基本概念和优势,以及在应用程序开发中的实际应用。

Docker是一种开源的容器化平台&#xff0c;可以将应用程序及其所有依赖项打包在一个容器中&#xff0c;实现跨平台、可移植和可扩展的部署。下面是Docker的基本概念和优势&#xff1a; 容器&#xff1a;Docker使用容器来打包应用程序及其依赖项&#xff0c;容器是一个独立、可执…

COD论文笔记 BiRefNet

本质还是一个 U 型编码器解码器结构的分割模型。 我可以考虑将©和(d)结合&#xff0c;即对解码器的输入不进行 patchify,同时在各个阶段引入梯度参考信息 最近的相关工作&#xff0c;中间监督、额外先验(频率&#xff0c;梯度&#xff0c;边缘等)取得不错效果 作者观察到…

Post-Training有多重要?一文带你了解全部细节

1. 简介 随着LLM学界和工业界日新月异的发展&#xff0c;不仅预训练所用的算力和数据正在疯狂内卷&#xff0c;后训练&#xff08;post-training&#xff09;的对齐和微调方法也在不断更新。InstructGPT、WebGPT等较早发布的模型使用标准RLHF方法&#xff0c;其中的数据管理风…

[建模已更新]2024数学建模国赛高教社杯A题:“板凳龙” 闹元宵 思路代码文章助攻手把手保姆级

本系列专栏将包括两大块内容 第一块赛前真题和模型教学,包括至少8次真题实战教学,每期教学专栏的最底部会提供完整的资料百度网盘包括:真题、数据、可复现代码以及文章. 第二块包括赛中详细思路建模、代码的参考助攻, 会提供2024年高教社国赛A的全套参考内容(一般36h内更新完毕…

高效实用的网站ICP备案查询接口

随着互联网的日益发展&#xff0c;对于网站的监管变得越来越重要。为了更好地管理和监督互联网上的网站&#xff0c;官方要求所有在中国境内的网站都需要进行ICP备案。因此&#xff0c;ICP备案不仅是法律要求&#xff0c;也是衡量一个网站是否正规的重要标志之一。为了便于开发…

【Redis】Redis 集群搭建与管理: 原理、实现与操作

目录 集群 (Cluster)基本概念数据分片算法哈希求余⼀致性哈希算法哈希槽分区算法 (Redis 使⽤) 集群搭建 (基于 docker)第⼀步: 创建⽬录和配置第⼆步: 编写 docker-compose.yml第三步: 启动容器第四步: 构建集群 主节点宕机演⽰效果处理流程1)故障判定2)故障迁移 集群扩容第⼀…

IP/TCP/UDP协议的关键知识点

导语&#xff1a;网络协议是理解网络情况的基础&#xff0c;当遇到网络问题时&#xff0c;首先可以从网络协议入手&#xff0c;熟悉的网络协议可以有效帮助小伙伴们排查或者说定位大概的问题方面。本文整理了目前最常用的网络通信协议&#xff0c;相信对小伙伴们肯定都有帮助。…

el-table使用type=“expand”根据数据条件隐藏展开按钮

一&#xff1a;添加className <el-table :data"tableData" border :loading"loading" :row-class-name"getRowClass" expand-change"expandchange"><el-table-column type"expand"><template #default"…

python学习11-Pytorch张量与数据处理1

ndarray 首先&#xff0c;我们介绍n维数组&#xff0c;也称为张量&#xff08;tensor&#xff09;。 使用过Python中NumPy计算包的读者会对本部分很熟悉。 无论使用哪个深度学习框架&#xff0c;它的张量类&#xff08;在MXNet中为ndarray&#xff0c; 在PyTorch和TensorFlow中…

高精度计算(代码加解析,洛谷p1601,p1303)除法待更新

目录 高精度加法 高精度减法 高精度乘法 高精度加法 我们知道在c语言中任何数据类型都有一定的表示范围。当两个被加数很大时&#xff0c;正常加法不能得到精确解。在小学&#xff0c;我们做加法都采用竖式方法。那么我们也只需要按照加法进位的方式就能得到最终解。 8 5 6…

华为eNSP:NAT Server(端口映射)

一、拓扑图 二、配置过程 此处省略设备地址以及路由配置过程 1、服务器开启ftp服务 2、路由器配置nat server [r4]int g0/0/2#进入流量出接口 [r4-GigabitEthernet0/0/2]nat server protocol tcp global 192.168.3.11 ftp inside 192.168.2.1 ftp# …

IP地址中的子网掩码

目录 一、子网掩码的概念 二、引入子网掩码的原因 1. 网络分段&#xff08;Subnetting&#xff09; 2. IP地址的组织 3. 有效利用IP地址 4. 减少广播域 5. 支持路由 三、子网掩码的划分 例子1 例子2 1. 子网掩码的二进制表示 2. 网络地址 3. 广播地址 4. 可用主机…

SnapGene 5.3.1下载安装教程百度网盘分享链接地址

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 SnapGene介绍 SnapGene 5.3.1下载安装教程百度网盘分享链接地址&#xff0c;SnapGene 是一款由美国公司开发&#xff08;后被收购&#xff09;的分子生物学软件&#xff0c;…