Activiti的流程实例【ProcessInstance】与执行实例【Execution】
最近,我在做流程引擎Activiti相关的东西,刚开始时的一个知识点困扰了我许久,那就是Activiti的ProcessInstance与Execution的区别,这是一个Activiti的难点,能够懂得这个,Activiti也就入门大半了,下面,我就细致的讲解一下他们的区别。
(1)首先,我们来看一张我总结的图片(这个图片中两条红色的execution包含网关与开始与结束节点,这个图片能够理解,那就不用再细致的看了)

这张图片就细致的说明了Activiti中流程实例ProcessInstance与Execution的区别,ProcessInstance与Execution的区别主要表现在有分支的流程中:
(i)如果流程是单线流程,那么此时的ProcessInstance就是Execution,这可以再数据库表act_ru_execution表中看出,在数据库表act_ru_exection表中的ID_与PROC_INST_ID_的值相同,这时的数据代表的就是ProcessInstance的相关数据,标红的数据再与上面条数据进行对比,就会非长容易的发现,再标红的数据下面没有数据的PARENT_ID_是等与标红的PROC_INST_ID_的,因为act_ru_execution表就是执行实例表,所以ProcessInstance也就是Execution的一种特殊情况,所以此时的ProcessInstance就是Execution

(ii)下面我们来说一下图中的分支流程部分,在图中可以看出,一个流程会对应一个ProcessInstance还有与分支数量相同的Execution,然后我们通过act_ru_exection表中的数据细致的分析与对比一下

此时我们图中所画的流程图在act_ru_execution表中对应的三条数据,与单线流程的知识相结合可以得知,吃屎得第一条数据对应的就是ProcessInstance的相关数据,三条数据的PROC_INST_ID_相等,可以得知它们是属于同一流程,再通过下面两条数据的PARENT_ID_等于第一条数据的PROC_INST_ID_可以知道,这两条数据是两条不同分支的执行实例信息Execution
(2)然后,我们再在代码层面说说ProcessInstance与Execution的关系

在这里,我们可以看出ProcessInstance继承与Execution,本质上ProcessInstance与Execution是一个东西。
Activiti的流程实例【ProcessInstance】与执行实例【Execution】的更多相关文章
- 我的第一个activiti实例 (代码方式) ctiviti入门列子一个简单的activiti请假流程
转: (activiti入门列子一个简单的activiti请假流程) 我的第一个activiti实例 2017年05月31日 14:29:45 chf_mixueer 阅读数:1223 整个项目的 ...
- Activiti的流程实例及挂起激活(七)
1.1什么是流程实例 参与者(可以是用户也可以是程序)按照流程定义内容发起一个流程,这就是一个流程实例.是动态的.流程定义和流程实例的图解: 1.2启动流程实例 流程定义部署在 activiti 后, ...
- Sql Server 函数的操作实例!(执行多条语句,返回Select查询后的临时表)
Sql Server 函数的操作实例!(执行多条语句,返回Select查询后的临时表) SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ==== ...
- SSISDB3:Package的执行实例
SSISDB 系列随笔汇总: SSISDB1:使用SSISDB管理Package SSISDB2:SSIS工程的操作实例 SSISDB3:Package的执行实例 SSISDB4:当前正在运行的Pac ...
- Java-Runoob-高级教程-实例-环境设置实例:3.Java 实例 - 如何执行指定class文件目录(classpath)?
ylbtech-Java-Runoob-高级教程-实例-环境设置实例:3.Java 实例 - 如何执行指定class文件目录(classpath)? 1.返回顶部 1. Java 实例 - 如何执行指 ...
- 谈谈Activiti中流程对象之间的关系
详细见:http://www.kafeitu.me/activiti/2012/03/22/workflow-activiti-action.html (咖啡兔好牛!) 详细见: http://blo ...
- activiti 一个流程的运转步骤 以请假流程为例
---为了加深对activiti的理解记忆,对自己做的一个流程进行自述.加强记忆 请假实例 一.设计请假的流程图以及流程文件,完善对应数据项,比如用户信息,请假单信息 --请假单 --流程图 --流程 ...
- Activiti之流程通过、驳回、会签、转办、中止、挂起等核心操作封装(Activiti5.9)
http://blog.csdn.net/rosten/article/details/38300267 package com.famousPro.process.service.impl; imp ...
- Liferay7 BPM门户开发之11: Activiti工作流程开发的一些统一规则和实现原理(完整版)
注意:以下规则是我为了规范流程的处理过程,不是Activiti公司的官方规定. 1.流程启动需要设置启动者,在Demo程序中,“启动者变量”名统一设置为initUserId 启动时要做的: ident ...
随机推荐
- 终于有人把MYSQL索引讲清楚了
一什么是索引 索引在MYSQL中也可以称为键,其是存储引擎用于快速查找记录的一种数据结构:这样听起来有点生涩,你可能难以理解:如果给你一本书,你如何能够精确的查找到书中某个章节的具体位置呢?我们肯定是 ...
- Java常见重构技巧 - 去除不必要的!=null判断空的5种方式,很少有人知道后两种
常见重构技巧 - 去除不必要的!= 项目中会存在大量判空代码,多么丑陋繁冗!如何避免这种情况?我们是否滥用了判空呢?@pdai 常见重构技巧 - 去除不必要的!= 场景一:null无意义之常规判断空 ...
- python里面的project、package、module分别是什么
2020/5/25 1.project(项目) project 即项目,是一个很大的文件夹,里面有好多的 .py 文件. 在Spyder 中点击菜单栏 projects -----> new ...
- 【性能优化】面试官:Java中的对象都是在堆上分配的吗?
写在前面 从开始学习Java的时候,我们就接触了这样一种观点:Java中的对象是在堆上创建的,对象的引用是放在栈里的,那这个观点就真的是正确的吗?如果是正确的,那么,面试官为啥会问:"Jav ...
- Keepalived服务详解
1. VRRP协议 1.1 VRRP协议概述 VRRP协议的出现是为了解决静态路由的单点故障,它是通过一种竞选机制来将路由任务交给某个vrrp路由器的 在VRRP物理结构中,有多个物理的VRRP路由器 ...
- 正则表达式基础(Regular Expression)
正则表达式简介 n 为什么需要正则表达式? q 文本的复杂处理. n 正则表达式的优势和用途? q 一种强大而灵活的文本处理工具: q 提供了一种紧凑的.动态的方式,能够以一种完全通用的方式 ...
- 《Linux从入门到精通》笔记
第一篇 基础篇 第1章 Linux概述 1.1 Linux的起源 1991年芬兰学生Linus Torvalds写的磁盘驱动和文件系统开源发布,Linux即"Linus的Minix&qu ...
- 简单版 Promise/A+,通过官方872个测试用例
promise 标准 在实现 Promise 之前要清楚的是 JavaScript 中的 Promise 遵循了 Promises/A+ 规范,所以我们在编写 Promise 时也应当遵循这个规范,建 ...
- [De1CTF 2019]Giftbox 分析&&TPOP学习
[De1CTF 2019]Giftbox 刚进来我以为是直接给了shell,恐怖如斯. 随便扔了个命令,之后就没然后了,hhh,截包发现可能存在sql注入. 然后我就不会了... what i lea ...
- 浅谈Java多线程
线程与进程 什么是进程? 当一个程序进入内存中运行起来它就变为一个进程.因此,进程就是一个处于运行状态的程序.同时进程具有独立功能,进程是操作系统进行资源分配和调度的独立单位. 什么是线程? 线程是进 ...