Springboot +Flowable,详细解释啥叫流程实例(一)

news2024/11/15 10:43:51

一.简介

上一篇中学习了Flowable 中的流程模板(流程定义)的部署问题,这一篇来学习什么叫流程实例。
部署之后的流程模板,还不能直接运行,例如我们部署了一个请假流程,现在 张三想要请假,他就需要开启一个请假流程,李四 想请假,他也需要开启一个请假流程,这开启的请假流程就是流程实例,**而我们一开始部署的请假流程,则类似于一个模版,基于此模版,我们可以开启很多个具体的流程实例。
**从这个角度来看,之前定义的 ProcessDefinition 就类似于一个 Java 类,今天要学习的 ProcessInstance 则相当于一个 Java 对象。

二.捋清概念:

首先我们需要先捋清三个概念:

流程定义 ProcessDefinition
流程实例 ProcessInstance
执行实例 Execution

1.流程定义 ProcessDefinition

流程定义 ProcessDefinition 。将一个流程 XML 文件部署到 flowable 中,这就是一个定义好的流程了,基于这个定义好的流程,我们可以开启很多流程实例。

2.流程实例 ProcessInstance

流程实例 ProcessInstance 就是通过流程定义启动的一个流程,他表示一个流程从开始到结束的最大的流程分支,流程实例和流程定义的关系就类似于 Java 对象和 Java 类之间的关系。

3.执行实例 Execution

执行实例 Execution 稍微有点难以理解。

首先从类的关系上来看,ProcessInstance 就是 Execution 的子类。

流程实例通常是执行实例的根结点,即在一个流程中,出口和入口可以算是一个流程实例的节点,而中间的过程则是执行实例。

假如流程本身就是一条线,那么流程实例和执行实例基本上是一样的,但是如果流程中包含多条线,例如下图:

在这里插入图片描述
这张图中有并行网关,并行任务执行的时候,每一个并行任务就是一个执行实例,这样大家就好理解了。

结论就是:在一个流程实例中,除了开始和结束之外,其他的都是执行实例。即使流程只有一条线,中间的也都是执行实例,只不过此时的执行实例等于流程实例而已。

三.五种流程启动方式

当我们将流程部署好之后,接下来启动流程,我们有五种不同的方式去启动一个流程。

1.通过流程定义的 id 去启动

首先就是通过流程定义的 id 去启动一个流程,对应的方法名称就是 RuntimeService#startProcessInstanceById,该方法有好几个重载的方法,不同的重载方法只是传递的参数不同而已,其他基本上都是一样的。

2.通过流程的 key 去启动

也可以通过流程定义的 key 去启动一个流程,这个流程定义的 key 其实就是流程 XML 文件中的 id,这个对应的方法名是 RuntimeService#startProcessInstanceByKey。

3.通过流程的 key+tenantId 去启动

有这样一种情况,例如我有两个子系统 A 和 B,A 和 B 中都有一个请假流程的定义,现在当我想要启动一个流程的时候,怎么知道是启动 A 的请假流程还是启动 B 的请假流程呢?此时我们可以通过租户 ID 即 tenantId 去区分,所以,流程启动就还有一个方法 RuntimeService#startProcessInstanceByKeyAndTenantId。

4.通过流程的 message 去启动

通过消息去启动一个流程,对应的方法是 RuntimeService#startProcessInstanceByMessage。

5.通过流程的 message+tenanId 去启动

通过消息+租户 ID 去启动一个流程,对应的方法是 RuntimeService#startProcessInstanceByMessageAndTenantId。

《肖申克的救赎》

生命可以归结为一种简单的选择:要么忙于生存,要么赶着去死。

懦怯囚禁人的灵魂,希望可以感受自由。强者自救,圣者渡人。

希望是件美丽的东西,也许是最好的东西。美好的东西是永远不会死的。

每个人都是自己的上帝。如果你自己都放弃自己了,还有谁会救你?

《熔炉》

我们一路奋战,不是为了能改变世界,而是为了不让世界改变我们。

现实如水母,看似美好无害实质总是致命伤人。

我们来到世界上,都是孤独的旅行,即使身边有人相伴,最终也会各奔东西!

世界上最美丽最珍贵的,反而是听不见且看不清的,只有用心才能感受得到。

《教父》

人可以不断犯错,但绝不能犯要命的错。

不要憎恨你的敌人,那会影响你的判断力。

人并非生来就伟大,而是越活越伟大。

《活着》

人是为了活着本身而活着,而不是为了活着之外的任何事物而活着。

以笑的方式哭,在死亡的伴随下活着。

没有什么比时间更具有说服力了,因为时间无需通知我们就可以改变一切。

你的命是爹娘给的,你不要命了也得先去问问他们。

《我不是药神》

世界上只有一种病,穷病,这种病你没法治,你也治不过来。

人间最高贵的是善良,是对生命的致敬。

《指环王》

把手握紧,里面什么也没有;把手放开,你得到的是一切。

我宁愿和你共度凡人短暂的一生,也不愿一个人看尽这世界的沧海桑田。

20.幸福的家庭都是相似的,不幸的家庭各有各的不幸。

或许有一天,人类变得萎缩懦弱,舍弃朋友,断绝友谊,但今天决不会这样。
《饮食男女》

22.人生不能像做菜,把所有的材料都准备好了才下锅。

什么叫做“可惜”啊,要心中有个“惜”字儿,才知道可惜。

其实一家人,住在一个屋檐下,照样可以各过各的日子,可是从心里产生的那种顾忌,才是一个家之所以为家的意义。

《让子弹飞》

世界上本没有路,有了腿便有了路。

如果你活着,早晚都会死;如果你死了,你就永远活着。

赚钱嘛,不寒碜

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

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

相关文章

WhatsApp多开攻略,低成本高效率多开账号聊单的方法献上~

WhatsApp多开攻略!低成本高效率多开账号聊单的方法献上~ WhatsApp多开是指在同一台设备上同时登录多个WhatsApp账号,这种技术通常被跨境电商从业者用于在不同的WhatsApp账号之间切换,以便更好地管理跨境电商业务。 图中工具: ss客…

lazada按关键字搜索商品API接口

lazada按关键字搜索商品 API接口,在 lazada上搜索产品,如果只需要搜索单个产品的话,那么直接在搜索框输入“关键字”即可,如果需要多个产品,那么则需要进行关键字扩展。 lazada按关键字搜索商品 API接口分为两部分&am…

AI 这是要杀疯啦!

ChatGPT 是基于 GPT 系列大模型开发出来的一个对话场景的 Demo,它已经让我们见识到了大模型的威力。 但有些开发者的胃口不满足于此,已经开始尝试“突破” AI 的边界了,本文推荐 5 个人工智能的开源项目。其中前两个项目,让人细思…

《港联证券》股票必须持仓多久才能卖?股票买入多久显示持仓?

有的新手股民在炒股的时候,对股票的了解是不多的,就会在网上搜索材料来进行学习,那么股票有必要持仓多久才干卖?股票买入多久显现持仓?港联证券为我们预备了相关内容,以供参阅。 股票有必要持仓多久才干卖&…

ADAS辅助驾驶之:BSD盲区监测功能

摘要: 盲点监测系统从技术上主要分为影像和雷达2种,2种技术路线各有优劣。 目录 1、车辆盲区监测系统的定义 2、车辆盲区监测系统原理 3、车辆盲区监测系统硬件安装及标定 4、车辆盲区监测系统发展 1、车辆盲区监测系统的定义 盲区监测系统&#x…

【算法题】2368. 受限条件下可到达节点的数目

题目: 现有一棵由 n 个节点组成的无向树,节点编号从 0 到 n - 1 ,共有 n - 1 条边。 给你一个二维整数数组 edges ,长度为 n - 1 ,其中 edges[i] [ai, bi] 表示树中节点 ai 和 bi 之间存在一条边。另给你一个整数数…

接到“女儿”求救电话 亲妈差点被AI仿声骗了

听到电话里女儿的求救声,慌乱的母亲差点给“绑匪”打钱,但绑匪是假的,女儿的声音也是克隆的。借助最新的AI技术,骗子只要拿到他人3秒的语音,就能快速复制出一模一样的声音,甚至方言和语气也能模仿。 当人们…

vulnhub之AI-Web-1.0

vulnhub之AI-Web-1.0 一、信息收集 1.主机发现 nmap 172.25.0.0-255发现了靶机IP:172.25.0.13 2.端口扫描 nmap -A -sS -sV -Pn -O -p- 172.25.0.13发现80端口是开放的。 3.目录扫描 sudo dirb http://172.25.0.13/发现了robots.txt文件 在对其进行目录二次…

神奇的饼状图:如何用最简单的方式呈现复杂的数据

简介 饼状图顾名思义就是形如圆饼状的图形,它是一种常用的图表类型,通常用于展示数据的占比关系。饼状图通过将一个圆形区域划分为多个子区域,反应出不同子类数据之间的的对比关系以及子类数据在大类中的百分比。饼状图将一个数据集按照每个…

全景丨0基础学习VR全景制作,平台篇第13章:热点功能-总览介绍

全景丨0基础学习VR全景制作,平台篇第13章:热点功能-总览介绍 大家好,欢迎观看蛙色VR官方——后台使用系列课程! 一、热点功能概览 热点,指在全景作品中添加各种类型图标的按钮,引导用户通过按钮产生更多的…

你知道C语言函数调用的2种方式吗?传值调用 传址调用

本篇博客会讲解C语言函数调用的2种方式,分别是:传值调用和传址调用。这2种函数调用方式有什么区别呢?为什么会有不同的效果呢?分别有哪些用途呢?下面我会一一展开。 区别 传值调用,即通过传递变量的值来调…

4个python内存性能检测工具:memory_profiler、timeit、line_profiler、heartrate的使用案例

这里总结了4个比较好的python性能检测工具,包括内存使用、运行时间、执行次数等方面。 1、memory_profiler查看内存的使用情况 memory_profiler可以用来测量python进程的内存使用情况。可以按行查看内存的使用情况。 memory_profiler 是一个监控进程内存消耗的模…

基于cv2的手势识别-计算机视觉

闲的无聊做的一个小玩意,可以调用你的计算机相机,识别框内的手势(剪刀、石头和布),提供一个判决平台,感兴趣的可以继续完善。 用到的参考小文献: 具体实现结果如下 并且我另写了一个框架平台&…

风雨30年,电子表格惊人跨越,excel用户:表格都能生成软件了

电子表格,绝不是你看到的样子! 你知道电子表格的前世今生吗? 它绝不只是你现在看到Excel或者WPS的模样。 不同的时代,有着不同的样子 DOS时代没有什么“可见可得”。什么都是靠想象力的,就是屏幕上文档的显示和打印…

供应商管理怎么做?供应商管理办法及流程介绍

阅读本文你将了解:1、供应商管理的重要性(供应商管理的痛点);2、供应商管理具体流程;供应商管理系统有什么作用。 一、供应商管理的重要性(供应商管理的痛点) 供应商管理是组织中至关重要的一环…

锂溶液净化和提纯

锂离子电池是一种充电电池,依靠锂离子在正极和负极之间移动来工作,广泛应用在便携式设备、卫星、储备电源、电动汽车等领域,具有替代各种二次电源的潜力。 近年来国家大力提倡和发展的新能源产业,锂离子电池的需求量的不断攀升&a…

三维实景模型在线浏览平台,在线编辑、在线分享各类地理空间数据

很多行业用户在获取了大量的三维实景模型数据后,想要进行在线浏览或者分享给他人查看,以往只能通过人工手动将模型压缩,不但耗时费力,效果还难以达到预期。 其实,只需要通过四维轻云地理空间数据云管理平台就能轻松实…

DataX数据同步工具使用

1.DataX 简介 DataX 是阿里云 DataWorks 数据集成 的开源版本,主要就是用于实现数据间的离线同步。 DataX 致力于实现包括关系型数据库(MySQL、Oracle 等)、HDFS、Hive、ODPS、HBase、FTP 等 各种异构数据源(即不同的数据库&…

# Linux shell终端设置代理服务器的方法

Linux shell终端设置代理服务器的方法 文章目录 Linux shell终端设置代理服务器的方法1 变量列表2 设置方法2.1 设置代理2.2 测试代理 3 软件专用代理3.1 yum专用代理3.2 git专用代理3.3 wget专用代理3.4 curl专用代理3.5 pip专用代理3.6 aria2c专用代理 4 最后 通过设置Linux变…

三个方法教你快速找到LinkedIn领英的潜在客户(置顶收藏)

第三点–最后一点是重点,要看到最后 相信很多外贸业务员都有这样的问题:“为什么你运营的账户询问的人数那么多,我自己运营的账户却没有人问呢?你是不是有什么好的运营技巧啊,可以给我说一下吗?”事实上&a…