Flowable工作流中会签节点处理回退并清除审批意见

本文主要是介绍Flowable工作流中会签节点处理回退并清除审批意见,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 1,操作方法及步骤
    • 2,实现细节
    • 3,总结

1,操作方法及步骤

在Flowable工作流会签流程中,如果最后一个人选择回退流程,想要清除前面用户A和B填写的审批意见,需要通过Flowable提供的API来操作流程实例和任务,具体操作方法可以遵循以下步骤:

  1. 设计流程时设置回退规则:在设计工作流时,应该考虑到回退的情况,并为每个节点设置相应的规则。例如,当流程被回退时,可以设定是否清除之前节点的数据。使用Flowable的RuntimeService或HistoryService来回退流程实例到指定的活动或历史节点。

  2. 触发回退机制:在最后一个人点击回退时,系统应该能够识别这一操作,并触发相应的回退机制。这可能涉及到修改数据库记录的状态,或者调用特定的API来处理数据。

  3. 清除审批意见:一旦回退机制被触发,系统应该自动清除或标记前面节点的所有审批意见为无效或已删除状态。这可以通过更新数据库中的字段来实现,例如将“审批意见”字段置为空,或将一个“有效状态”字段设置为“无效”。在回退后,找到相关的任务实例,更新其属性,例如清除审批意见或设置一个标志表示意见无效。

  4. 恢复到前一状态:清除审批意见后,流程应该回到上一个状态,使得下一次审批可以从头开始,而不受之前审批意见的影响。

  5. 通知相关人员:最后,系统还应该自动通知所有受影响的参与者(如用户A和B),告知他们流程已被回退,以及他们可能需要重新进行审批。

2,实现细节

  1. 回退流程实例
    使用RuntimeService的createChangeActivityStateBuilder方法来回退流程实例。下面是一个示例代码片段:
// 假设你已经有了流程实例ID和你想回退到的活动ID
String processInstanceId = "your-process-instance-id";
String activityIdToRollbackTo = "activity-id";// 获取RuntimeService
RuntimeService runtimeService = processEngine.getRuntimeService();// 创建回退流程实例的builder
ChangeActivityStateBuilder changeStateBuilder = runtimeService.createChangeActivityStateBuilder().processInstanceId(processInstanceId).moveToActivity(activityIdToRollbackTo);// 执行回退
changeStateBuilder.execute();
  1. 清除审批意见
    对于清除审批意见,遍历或查询所有相关任务,然后使用TaskService来更新任务的属性。例如:
// 获取TaskService
TaskService taskService = processEngine.getTaskService();// 查询所有与流程实例相关联的任务
List<Task> tasks = taskService.createTaskQuery().processInstanceId(processInstanceId).list();// 遍历任务并清除审批意见
for (Task task : tasks) {// 获取任务变量或属性,假设审批意见保存在一个名为"approvalComment"的变量中Object approvalComment = taskService.getVariable(task.getId(), "approvalComment");// 如果审批意见存在,则清除它if (approvalComment != null) {taskService.removeVariableLocal(task.getId(), "approvalComment");}
}

上述代码仅作为示例,遇到问题可能需要根据你的具体需求和环境进行调整。

3,总结

最后,进行这类操作时,务必小心,因为它们可能会影响流程的历史数据和一致性。建议在测试环境中尝试并验证逻辑,然后再在生产环境中实施。

在这里插入图片描述


人生从来没有真正的绝境。只要一个人的心中还怀着一粒信念的种子,那么总有一天,他就能走出困境,让生命重新开花结果。


这篇关于Flowable工作流中会签节点处理回退并清除审批意见的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1060373

相关文章

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

day-51 合并零之间的节点

思路 直接遍历链表即可,遇到val=0跳过,val非零则加在一起,最后返回即可 解题过程 返回链表可以有头结点,方便插入,返回head.next Code /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}*

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言

【每日一题】LeetCode 2181.合并零之间的节点(链表、模拟)

【每日一题】LeetCode 2181.合并零之间的节点(链表、模拟) 题目描述 给定一个链表,链表中的每个节点代表一个整数。链表中的整数由 0 分隔开,表示不同的区间。链表的开始和结束节点的值都为 0。任务是将每两个相邻的 0 之间的所有节点合并成一个节点,新节点的值为原区间内所有节点值的和。合并后,需要移除所有的 0,并返回修改后的链表头节点。 思路分析 初始化:创建一个虚拟头节点

Thymeleaf:生成静态文件及异常处理java.lang.NoClassDefFoundError: ognl/PropertyAccessor

我们需要引入包: <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>sp

工作常用指令与快捷键

Git提交代码 git fetch  git add .  git commit -m “desc”  git pull  git push Git查看当前分支 git symbolic-ref --short -q HEAD Git创建新的分支并切换 git checkout -b XXXXXXXXXXXXXX git push origin XXXXXXXXXXXXXX

嵌入式方向的毕业生,找工作很迷茫

一个应届硕士生的问题: 虽然我明白想成为技术大牛需要日积月累的磨练,但我总感觉自己学习方法或者哪些方面有问题,时间一天天过去,自己也每天不停学习,但总感觉自己没有想象中那样进步,总感觉找不到一个很清晰的学习规划……眼看 9 月份就要参加秋招了,我想毕业了去大城市磨练几年,涨涨见识,拓开眼界多学点东西。但是感觉自己的实力还是很不够,内心慌得不行,总怕浪费了这人生唯一的校招机会,当然我也明白,毕业

jenkins 插件执行shell命令时,提示“Command not found”处理方法

首先提示找不到“Command not found,可能我们第一反应是查看目标机器是否已支持该命令,不过如果相信能找到这里来的朋友估计遇到的跟我一样,其实目标机器是没有问题的通过一些远程工具执行shell命令是可以执行。奇怪的就是通过jenkinsSSH插件无法执行,经一番折腾各种搜索发现是jenkins没有加载/etc/profile导致。 【解决办法】: 需要在jenkins调用shell脚

husky 工具配置代码检查工作流:提交代码至仓库前做代码检查

提示:这篇博客以我前两篇博客作为先修知识,请大家先去看看我前两篇博客 博客指路:前端 ESlint 代码规范及修复代码规范错误-CSDN博客前端 Vue3 项目开发—— ESLint & prettier 配置代码风格-CSDN博客 husky 工具配置代码检查工作流的作用 在工作中,我们经常需要将写好的代码提交至代码仓库 但是由于程序员疏忽而将不规范的代码提交至仓库,显然是不合理的 所