工作流程flowable(二)流程节点跟踪

news2024/11/24 2:55:20

flowable 节点跟踪

  • 一、发起
    • 1-1 流程模型
        • 1-1-1 流程模型定义
        • 1-1-2 部署流程模型 {modelId}
    • 1-2 部署管理
        • 1-2-1 流程定义列表查询
    • 新的改变
  • 二、我的申请
    • 新的改变
  • 三、我的待办
    • 新的改变
  • 三、我的已办
    • 新的改变

一、发起

1-1 流程模型

1-1-1 流程模型定义
1-1-2 部署流程模型 {modelId}
  • 获取流程模型 -> select * from ACT_RE_MODEL where ID_ = ‘531209153359254155’
model = {ModelEntityImpl@21199} 
	 name = "薪资发放申请模型"
	 key = "Process_1702015475567"
	 category = "payroll_approval"
	 createTime = {Date@21280} "Sat Dec 09 15:33:59 CST 2023"
	 lastUpdateTime = {Date@21281} "Mon Dec 11 19:10:50 CST 2023"
	 version = {Integer@21282} 2
	 metaInfo = "{"createUser":null,"description":"人事薪资发放申请","formType":1,"formId":null,"customFormPath":"/salary/salaryPaymentDetails","customFormTitle":null}"
	 deploymentId = null
	 editorSourceValueId = "531209153359257156"
	 editorSourceExtraValueId = null
	 tenantId = ""
	 id = "531209153359254155"
	 revision = 20
  • 获取流程图 (存着各task节点)bpmnBytes -> select * from ACT_GE_BYTEARRAY where ID_ = ‘531209153359257156’
  • 部署流程 -> ACT_RE_PROCDEF 保存一个流程定义的 快照版本 ,部署当时的流程定义快照, (因为定义可能会随时调整)
  • 在这里插入图片描述
1.  先用model中的 key 查询流程定义   最新版本的
 select * from ACT_RE_PROCDEF where KEY_ = 'Process_1702015475567' and (TENANT_ID_ = '' or TENANT_ID_ is null) and DERIVED_FROM_ is null and VERSION_ = (select max(VERSION_) from ACT_RE_PROCDEF where KEY_ = 'Process_1702015475567' and (TENANT_ID_ = '' or TENANT_ID_ is null))

查出 PROC_DEF_ID_
 PROC_DEF_ID_ = 'Process_1702015475567:2:531212111059431103'

## 会生成一个 deployment_id,  关联上 :流程定义快照 和 流程部署

insert into ACT_RE_PROCDEF(ID_, REV_, **CATEGORY_**, NAME_, KEY_, VERSION_, **DEPLOYMENT_ID_**, RESOURCE_NAME_, DGRM_RESOURCE_NAME_, DESCRIPTION_, HAS_START_FORM_KEY_, HAS_GRAPHICAL_NOTATION_ , SUSPENSION_STATE_, DERIVED_FROM_, DERIVED_FROM_ROOT_, DERIVED_VERSION_, TENANT_ID_, ENGINE_VERSION_) 
values ('Process_1702015475567:3:531212112140456107', 1, '**http://flowable.org/bpmn**', '薪资发放申请模型', 'Process_1702015475567', 3, '**531212112139926104**', '薪资发放申请模型.bpmn', '薪资发放申请模型.Process_1702015475567.png', NULL, true, true, 1, NULL, NULL, 0, '', NULL)

## 用 deployment_id 关联上表和下表 
 Consume Time:9 ms 2023-12-12 11:21:40
insert into ACT_RE_DEPLOYMENT(**ID_**, NAME_, CATEGORY_, KEY_, TENANT_ID_, DEPLOY_TIME_, DERIVED_FROM_, DERIVED_FROM_ROOT_, PARENT_DEPLOYMENT_ID_, ENGINE_VERSION_) 
values('**531212112139926104**', '薪资发放申请模型', 'payroll_approval', 'Process_1702015475567', '', '2023-12-12 11:21:39', NULL, NULL, '531212112139926104', NULL)

## 流程部署时,流程定义中的参数变量 , 也是用 deployment_id 关联上 
 Consume Time:34 ms 2023-12-12 11:21:40
INSERT INTO ACT_GE_BYTEARRAY(ID_, REV_, NAME_, BYTES_, **DEPLOYMENT_ID_**, GENERATED_) 
VALUES 
('531212112139927105', 1, '薪资发放申请模型.bpmn', 'java.io.ByteArrayInputStream@d868798', '**531212112139926104**', false) ,
 ('531212112140389106', 1, '薪资发放申请模型.Process_1702015475567.png', 'java.io.ByteArrayInputStream@57ef832a', '**531212112139926104**', true)

插入结果 deployment 如下 :

deployment = {DeploymentEntityImpl@26933} "DeploymentEntity[id=531212112139926104, name=薪资发放申请模型]"
 name = "薪资发放申请模型"
 category = "payroll_approval"
 key = "Process_1702015475567"
 tenantId = ""
 resources = {HashMap@26965}  size = 2
 deploymentTime = {Date@26966} "Tue Dec 12 11:21:39 CST 2023"
 isNew = true
 derivedFrom = null
 derivedFromRoot = null
 parentDeploymentId = "531212112139926104"
 engineVersion = null
 deployedArtifacts = {HashMap@26968}  size = 1
 id = "531212112139926104"
  • 修改流程定义的分类,便于搜索流程 ->
## 1 先查询  再更新
SELECT RES.* from ACT_RE_PROCDEF RES WHERE RES.DEPLOYMENT_ID_ = '531212112139926104' order by RES.ID_ asc
结果 :
procDef = {ProcessDefinitionEntityImpl@27004} "ProcessDefinitionEntity[Process_1702015475567:3:531212112140456107]"
name = "薪资发放申请模型"
localizedName = null
description = null
localizedDescription = null
key = "Process_1702015475567"
version = 3
**category** = "http://flowable.org/bpmn" 
deploymentId = "531212112139926104"
resourceName = "薪资发放申请模型.bpmn"
tenantId = ""
historyLevel = null
diagramResourceName = "薪资发放申请模型.Process_1702015475567.png"
isGraphicalNotationDefined = true
variables = null
hasStartFormKey = true
suspensionState = 1
isIdentityLinksInitialized = false
definitionIdentityLinkEntities = {ArrayList@27019}  size = 0
ioSpecification = null
derivedFrom = null
derivedFromRoot = null
derivedVersion = 0
engineVersion = null
id = "Process_1702015475567:3:531212112140456107"
revision = 1
isInserted = false

## 2  又根据上面结果的 id 查询一下,有点啰嗦了
select * from ACT_ 
RE_PROCDEF where ID_ = 'Process_1702015475567:3:531212112140456107'
##3 然后才更新  流程定义的category   REV_ =  REV_  + 1 
update ACT_RE_PROCDEF SET REV_ = 2, CATEGORY_ = *'payroll_approval'*   where ID_ = 'Process_1702015475567:3:531212112140456107' and REV_ = 1


  • 保存部署表单 -> FROM wf_form WHERE form_id=1
## 1 先查询 
SELECT form_id,form_name,content,remark,create_by,create_time,update_by,update_time FROM wf_form WHERE form_id=1 

##2  如果有标准表单,如果是自定义业务流程,可能没有 下面的插入操作  
INSERT INTO wf_deploy_form ( deploy_id, form_key, node_key, form_name, content )

VALUES ( '531212112139926104', 'key_1', 'Event_028fyme', '请假申请单', '{"formRef":"elForm","formModel":"formData","size":"medium","labelPosition":"right","labelWidth":100,"formRules":"rules","gutter":15,"disabled":false,"span":24,"formBtns":true,"fields":[
{"__config__":{"label":"员工姓名","labelWidth":null,"showLabel":true,"changeTag":true,"tag":"el-input","tagIcon":"input","required":true,"layout":"colFormItem","span":24,"document":"https://element.eleme.cn/#/zh-CN/component/input","regList":[],"formId":101,"renderKey":"1011686020316414"},"__slot__":{"prepend":"","append":""},"placeholder":"请输入员工姓名","style":{"width":"100%"},"clearable":true,"prefix-icon":"","suffix-icon":"","maxlength":null,"show-word-limit":false,"readonly":false,"disabled":false,"__vModel__":"field101"},

{"__config__":{"label":"员工编号","labelWidth":null,"showLabel":true,"changeTag":true,"tag":"el-input","tagIcon":"input","required":true,"layout":"colFormItem","span":24,"document":"https://element.eleme.cn/#/zh-CN/component/input","regList":[],"formId":102,"renderKey":"1021686020353898"},"__slot__":{"prepend":"","append":""},"placeholder":"请输入员工编号","style":{"width":"100%"},"clearable":true,"prefix-icon":"","suffix-icon":"","maxlength":null,"show-word-limit":false,"readonly":false,"disabled":false,"__vModel__":"field102"},

{"__config__":{"label":"请假原因","labelWidth":null,"showLabel":true,"changeTag":true,"tag":"el-input","tagIcon":"input","required":true,"layout":"colFormItem","span":24,"document":"https://element.eleme.cn/#/zh-CN/component/input","regList":[],"formId":103,"renderKey":"1031686020368854"},"__slot__":{"prepend":"","append":""},"placeholder":"请输入请假原因","style":{"width":"100%"},"clearable":true,"prefix-icon":"","suffix-icon":"","maxlength":null,"show-word-limit":false,"readonly":false,"disabled":false,"__vModel__":"field103"},

{"__config__":{"label":"请假日期","tag":"el-date-picker","tagIcon":"date-range","defaultValue":["2023-06-07 00:08:00","2023-06-08 18:00:00"],"span":24,"showLabel":true,"labelWidth":null,"required":true,"layout":"colFormItem","regList":[],"changeTag":true,"document":"https://element.eleme.cn/#/zh-CN/component/date-picker","formId":105,"renderKey":"1051686020408243"},"style":{"width":"100%"},"type":"datetimerange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期","disabled":false,"clearable":true,"format":"yyyy-MM-dd HH:mm:ss","value-format":"yyyy-MM-dd HH:mm:ss","readonly":false,"__vModel__":"field105"}]}' )

1-2 部署管理

  • /workflow/deploy/list?pageNum=1&pageSize=10
1-2-1 流程定义列表查询

新的改变

我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:

  1. 全新的界面设计 ,将会带来全新的写作体验;
  2. 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
  3. 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
  4. 全新的 KaTeX数学公式 语法;

二、我的申请

新的改变

我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:

  1. 全新的界面设计 ,将会带来全新的写作体验;
  2. 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
  3. 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
  4. 全新的 KaTeX数学公式 语法;

三、我的待办

新的改变

我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:

  1. 全新的界面设计 ,将会带来全新的写作体验;
  2. 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
  3. 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
  4. 全新的 KaTeX数学公式 语法;

三、我的已办

新的改变

我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:

  1. 全新的界面设计 ,将会带来全新的写作体验;
  2. 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
  3. 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
  4. 全新的 KaTeX数学公式 语法;

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

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

相关文章

我的隐私计算学习——隐私集合求交(2)

笔记内容来自多本书籍、学术资料、白皮书及ChatGPT等工具,经由自己阅读后整理而成。 前篇可见:我的隐私计算学习——隐私集合求交(1) (三)PSI应用场景问题 ​在目前的实际应用中,衍生出一些新…

美食大赛的题解

目录 原题描述: 题目描述: 输入格式: 输出格式: 样例输入: 样例输出: 数据规模: 题目大意: 主要思路: 注: 代码: 原题描述&#xff1a…

updateBatch批量更新

java代码 Dao层 int updateBatch(Param("userList") List<User> userList);sql配置文件 <update id"updateBatch" parameterType"java.util.List" ><foreach collection"userList" item"user" separator&quo…

Next.js中的App Router与Page Router,各自的作用和使用方式,如何理解和配置使用?

App Router介绍 Next.js中的App Router是全局的路由器&#xff0c;它用于在应用程序的所有页面之间进行导航。它可以用于在页面之间传递状态和数据&#xff0c;类似于React中的Context。 App Router是通过_app.js文件中的getInitialProps方法来配置的。 在 Next.js 中&#xf…

算法通关村第十三关—数学与数学基础问题(青铜)

数学与数学基础问题 一、统计专题 1.1 符号统计 LeetCode1822给定一个数组&#xff0c;求所有元素的乘积的符号&#xff0c;如果最终答案是负的返回-1&#xff0c;如果最终答案是正的返回1&#xff0c;如果答案是0返回0。  题目比较简单&#xff0c;正数对结果完全没影响&…

RK3568驱动指南|第八篇 设备树插件-第75章ConfigFS的核心数据结构

瑞芯微RK3568芯片是一款定位中高端的通用型SOC&#xff0c;采用22nm制程工艺&#xff0c;搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码&#xff0c;支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU&#xff0c;可用于轻量级人工…

【Docker】进阶之路:(九)Docker网络

【Docker】进阶之路&#xff1a;&#xff08;九&#xff09;Docker网络 Docker网络模式简介bridge网络模式host网络模式none网络模式container网络模式user-defined网络模式1.创建自定义的bridge网络2.使用自定义网络 高级网络配置docker network命令 为什么要了解容器的网络模…

谈谈MYSQL主从复制原理

目录 概述 要点binlog日志 主从复制过程 总结 概述 MySQL 主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点。 MySQL 默认采用异步复制方式。从节点不用一直访问主服务器来更新自己的数据&#xff0c;数据的更新可以在远程连接上进行&#xff0…

Python应用利器:缓存妙用,让你的程序更出色更快速!

在 Python 应用程序中&#xff0c;使用缓存能够显著提高性能并降低资源消耗。本文将详细介绍如何在 Python 中实现缓存机制&#xff0c;包括内置 functools 模块提供的 lru_cache 装饰器以及自定义缓存机制。 使用 functools 模块的 lru_cache functools 模块提供了 lru_cach…

【CDP】CDP 集群通过Knox 访问Yarn Web UI,无法跳转到Flink Web UI 问题解决

一、前言 记录下在CDP 环境中&#xff0c;通过Knox 访问Yarn Web UI&#xff0c;无法跳转到Flink Web UI 的BUG 解决方法。 二、问题复现 登录 Knox Web UI 找到任一 Flink 任务 点击 ApplicationMaster 跳转 Flink WEB UI 出问题 内容空白&#xff0c;无法正常跳转到…

【MySQL】mysql | mysql5.7升级8.0注意事项

一、说明 1、应公司要求&#xff0c;mysql5.7安全漏洞较多&#xff0c;需要升级到8.0 2、记录注意事项备不时之需 二、注意事项 1、加密算法 1&#xff09;加密算法8.0改了&#xff0c;导致navicat无法连接 2&#xff09;解决&#xff1a; use mysql; ALTER USER root% IDENT…

利用冒泡排序了解如何将数组作为参数传递给函数

目录 前言:冒泡排序简介步骤动图演示 错误的冒泡排序函数数组名正确的冒泡排序函数 前言:冒泡排序 简介 冒泡排序是一种简单直观的排序算法。 它重复地访问要排序的数&#xff0c;一次比较两个元素&#xff0c;如果他们的顺序错误就把他们交换过来。访问数需要重复地进行直到…

DS冲刺整理做题定理(一)二叉树专题

&#xff08;只总结博主自己记得不熟的~&#xff09; 数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下&#xff0c;精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技…

微服务——分布式事务

事务理论基础 分布式锁保证多线程下数据库操作安全保障 分布式事务发生异常可以回滚. 使用postman发送请求插入一条新订单。 然后现在库存只剩下8个商品&#xff0c;如果买10个的话应该统一失败。 CAP定理 假如node03在独立时将所有请求都堵塞并等待恢复和其余节点的连接的话以…

【Spring Boot】快速入门

一、引言 1、什么是spring boot&#xff1f; Spring Boot是由Pivotal团队提供的全新框架&#xff0c;其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置&#xff0c;从而使开发人员不再需要定义样板化的配置。通过这种方式&#xff…

【c++】stl_priority_queue优先级队列

目录 一、priority_queue的介绍 二、 priority_queue的本质 三、priority_queue的使用 四、priority_queue的模拟实现 总结 一、priority_queue的介绍 首先让我们通过阅读优先级队列的官方文档 简单翻译一下 1. 优先队列是一种容器适配器&#xff0c;根据严格的弱排序标准…

内存不够用怎么办?整理了几个必备的方法!

内存越大&#xff0c;运行越快&#xff0c;程序之间的切换和响应也会更加流畅。但是随着时间的增加&#xff0c;还是堆积了越来越多的各种文件&#xff0c;导致内存不够用&#xff0c;下面就像大家介绍三种好用的清理内存的方法。 方法一&#xff1a;通过电脑系统自带的性能清理…

关于Android studio新版本和NEW UI显示返回按钮的设置

1.新版Android studio问题 因为在新版本的Android Studio中&#xff0c;默认情况下是没有直接的选项来显示返回上一步按钮在状态栏上的&#xff0c;可以通过以下方法来实现返回上一步的功能&#xff1a; 在Android Studio的顶部菜单栏中&#xff0c;选择"View"。在…

量子纠错率提高100倍!亚马逊云科技开启量子创新时代

由AWS开发和制造的包装组件中的超导量子芯片&#xff08;图片来源&#xff1a;网络&#xff09; 作为一项尖端技术&#xff0c;量子计算能提供前所未有的计算能力。美国亚马逊云科技&#xff08;AWS&#xff09;近期推出了一款量子芯片&#xff0c;展示出该技术取得了重大飞跃…

为什么选择国产WordPress:HelpLook的优势解析

如今网站建设可以说已经是企业必备。而在众多的网站建设工具中&#xff0c;WordPress无疑是其中的佼佼者。作为一款开源的CMS&#xff08;内容管理系统&#xff09;&#xff0c;WordPress拥有丰富的插件和主题&#xff0c;以及强大的功能&#xff0c;使得用户可以轻松地构建出符…