工作流引擎驳回设计

F2BPM流程引擎 F2BPM流程引擎     2022-08-30     261

关键词:

1.1 关于驳回

驳回,在有的应用中叫“回退”。驳回是中国特色的一种方式,驳回在流程图上也没有迁移线的表达经常也是隐性的,比如申请经费可能由于资料不足被驳回来补充资料,像这样的例子有非常多,也很常见。

驳回是工作流参与者对自己“待办任务”的一种操作,即参与者主动回退待办任务列表中的任务到已经执行过的人工节点。

回退的情况实际上是非常复杂的,有串行上的驳回,也有并行内的驳回,并行区内驳回到并行区外,从分支驳回到主干等,从主干驳回到分支内,多重聚合的驳回等。驳回过程中会发生很多事情,也会可能导致重走路径时产生重复路径。

驳回方式的支持力度也往往成为评价一个工作流引擎是否具有中国特色和引擎强弱的能重要批价指标。

1.2 关于显隐性驳回的理解

如下图所示,有节点A到节点B 属于正常发送,但从节点B到节点A,则出现两种情况:

 

(1)迁移驳回:实际说是迁移驳回的表达是不正确的,因为没有迁移驳回的说法,本质上还是正常发送,如图中B—A黑色线;(迁移的驳回严格上没有驳回的意义存在,只是一种表象,与正常向提交节点没有区别,所以迁移式的驳回不是本节讨论的重点),这里只是提出来有一个认识。

通过流程定义时绘出驳退迁移线来显式的支持驳回,即使用迁移的方式来作为回退,实际这种不叫驳回,只是用流程的正常提交流转而已。

(2)被驳回:(流程图中不存在线,如上图中红色线是不存在的)可能因为某些特殊原因,被任务B退回,要求任务A重新办理,如图中B—A红色线。虽然都是从B到A,代表的意义却完全不同。(本章所讨论的驳回模型都是讨论这种情况),

1.3 关于业务补偿

业务补偿是一个很重要的概念,在回退的情况下需要相应的回退部分业务操作。这里由通常由用户自行编写相关的代码进行业务上的回滚,由用户自定义代码进行处理。

1.4 驳回问题类型

1仅可驳回到提单

2仅可驳回到上一步

3仅可驳回到上一步或提单

4驳回任意历史节点

5驳回指定历史节点

1.5 驳回模式

1.5.1 描述

 

上图:驳回模式

驳回模式是指驳回后再重新提交应当怎么处理,如上图所示,节点3驳回到节点2,然后节点2重新提交时直接提交回到节点3.这就叫直来直往。

上图所示,节点6驳回到节点2,节点2正常提交依然是走节点5,节点5再并发给节点3和节点6,这样的方式就叫按流程图执行。

当按直来直往或按图流程执行时都会发生一些问题,比如节点6驳回节点2时,如果当时节点3已经存在实例了,那么这时驳回节点2这后重新走节点5会导致节点3的分支重复,那么这些问题就是驳回模式中要解决的问题。

主要分为两种模式:

按流程图执行

即按流程图定义执行。

直来直往模式

哪里在来的就回哪里去。

1.5.2 直来直往

即驳回后回到本节点

 

如上图所示,节点3驳回到节点2,节点2处理后直接返回到节点3.直来直往适应于绝大多数情况。

 

直来直往模式有且只能转递一次,比如节点13直来直住模式驳回到节点3,这时候节点3不允许再有直来直往驳回到节点2.因为如果有再次直来直住驳回到节点2会造成混乱,因为节点2处理完后直接返回节点3,当节点3再次处理时是按正常提交给节点7,并不会直接返回节点13,那么此时流程实例将无法正常流转到结束,因为节点13是一个并行结束节点。

节点3此时也不支持再次使用按流程图执行的驳回,因为是会破坏节点13的设置期望,节点13是期望驳回后直接处理返回回来,所以直来直往驳回后,统一规则为不允许再次驳回。只能是按节点13的期望处理完后再次返回给节点13.

1.5.3 按流程图执行

1、并行区间外驳回到并行区前

 

如上图所示节点13驳回到节点2,此时节点2提交后是按流程图执行,而引擎是删除节点2之后所有节点实例,比如节点6如果存在实例而清空掉这些实例。那么当前任务会从节点5重新开发。

1.5.4 并行外驳回到并行区间内

 

如上图所示,任务13驳回到任务7的情况,由于节点7处于并行分支上,我们约定这种情况的驳回模式只支持“直来直往”模式, 因为若不是这样那么节点7可能永远不法继续流转,因为节点13是一个并行结束节点,需要等候节点7和节点15同时到达。

直来直往模式:支持

按流程图执行:不支持

1.5.5 并行区间内驳回到并行区间外

 

如上图所示为并行区间内驳回到并行区间外,节点3驳回到节点2.

直来直往模式:支持

按流程图执行:支持

activiti7工作流引擎:进阶篇驳回(拒绝)(代码片段)

也不知道张世豪厉害,还是李华强厉害。驳回或者拒绝就是某个审批人不同意你的申请,此时流程就直接结束了。我们可以增加分支条件或者排它网关来完成驳回功能。此方法适用于节点较少的情况。1.bpmn文件同意:... 查看详情

activiti工作流几种驳回方式的实现与比较

最近公司做的一个项目要实现工作流程的收回,驳回等操作,而采用的工作流引擎并不支持驳回功能,这个项目恰好就我和一个实习生一块做,所以这个问题就落到我的头上来解决了。。。客户提出的要求是驳回时要记录日志,... 查看详情

工作流(代码片段)

工作流:一套业务流程 员工编写请假条----->部门经理进行处理----->总经理------>人事登记 数据库中生成记录 工号姓名部门编号请假日期请假天数请假事由状态 001 张三 1 2020年3月30日 3zxxx0,10代表提交失败1代表提... 查看详情

工作流引擎设计

工作流引擎设计            ENTWorkflow:工作流主表NamecodetypeisNull主键ENTWorkflowIdIntNOTNULL工作流名称WorkflowNameVarchar(50)     &nb 查看详情

驰骋工作流引擎设计系列04流程引擎表结构的设计

第1节.关键字驰骋工作流引擎流程快速开发平台workflowccflowjflow第1节.流程引擎表结构的设计流程引擎表是流程引擎控制流程运转的数据存储表,是整个流程引擎的核心表。理解表结构,掌握状态字段,相关字段变化的规律,就掌... 查看详情

ccbpm工作流引擎的消息机制与设计

...微信连接消息接口关于ccbpm:我们把ccflowjflow两个版本号的工作流引擎统称为ccbpm.工作流引擎的消息产生:在发送、抄送、退回、转发、加签、删除等等操作过程中。须要对当时人进行提醒,而且在设置提醒的情况下,就会产生消... 查看详情

工作流引擎设计--休假模块表

简单的休假系统设计                    PTORequest:保存用户的请求NamecodetypeisNull主键PTORequestIdintNOTNULL提出请求的用户ENTU 查看详情

java工作流引擎-集团模式下的权限设计与实现

关键字工作流开发框架权限设计、用户组、岗位、集团模式应用.java工作流程引擎,.net工作流引擎,工作流开发框架相关的表结构--相关组织-表结构。SELECTNo,Name,ParentNoFROMport_dept;  --部门。SELECTNo,Name,Adminer,AdminerNameFROMport_org... 查看详情

驰骋工作流引擎设计系列02

 流程实例的生成设计第1节.关键字驰骋工作流引擎流程快速开发平台workflowccflowjflow第2节.关于WorkID的设计workid也叫流程实例id,理解清楚workid的整个过程有助于理解如何获得数据,以及相关流程引擎表,业务数据表的产生变化... 查看详情

activity工作流引擎开发系列

Activity工作流引擎开发系列-01作者:邓家海没有伞的孩子,只能光脚奔跑!前言:   初次接触工作流这个概念是自从2014年11月份开始,当时是由于我的毕业设计需要,还记得当时我毕业设计的题目是《基于BS结构模式... 查看详情

驰骋工作流引擎设计系列01流程元素设计

第1节.关键字驰骋工作流引擎流程快速开发平台workflowccflowjflow第2节.ccflow流程元素设计流程元素,概要的说就是流程上的画布内容。l驰骋流程引擎元素比较简,节点、连接线、标签三种。l设置有三个流程属性、节点属性、方向... 查看详情

什么是工作流引擎

参考技术A工作流引擎是指workflow作为应用系统的一部分,并为之提供对各应用系统有决定作用的根据角色、分工和条件的不同决定信息传递路由、内容等级等核心解决方案。工作流引擎包括了,流程的节点管理、流向管理、流程... 查看详情

工作流引擎的工作原理与功能

 协同工作流引擎(Synchroflow)基于企业流程自动化基础的平台的产品同时也是企业流程再造的核心产品,并且提供以业务建模、流程设计、流程仿真、界面设计、业务整合、部署执行、系统管理、业务监控为主线的全闭环式... 查看详情

规则引擎用户界面设计

】规则引擎用户界面设计【英文标题】:RulesEnginesUserInterfaceDesign【发布时间】:2010-12-2604:02:09【问题描述】:在工作中,我们有优化引擎,这些引擎使用的输入之一是业务规则,我们使用专有的规则编辑器创建和编辑。这些规... 查看详情

flowable之驳回多实例驳回并行网关驳回普通节点驳回到多实例

flowable驳回欢迎大家学习交流,如有不对的地方,请大家多多指教,我接下来会把flowable的所有的中国式API*都写出来,也希望对大家有帮助,程序员只要静下心来,其实可以产生巨大的能量,靠任何人都没有用,唯有靠自己。学... 查看详情

工作流引擎架构设计(代码片段)

原文链接:工作流引擎架构设计最近开发的安全管理平台新增了很多工单申请流程需求,比如加白申请,开通申请等等。最开始的两个需求,为了方便,也没多想,就直接开发了对应的业务代码。但随着同... 查看详情

驰骋工作流引擎设计系列06保存草稿设计

第1节.关键字驰骋工作流引擎流程快速开发平台workflowccflowjflow第1节.ccflow保存与保存草稿设计保存,就是用户点击保存所要执行的工作,在讲解这个概念之前,我们要了解什么是草稿规则。1.1.1:ccflow关于草稿规则定义:流程发起... 查看详情

驰骋工作流引擎设计系列10时效考核规则设计

  第1节.关键字驰骋工作流引擎流程快速开发平台workflowccflowjflow第1节.时效考核规则设计考核是流程运行的副产品,业务搬到了计算机上,整个运行轨迹就会被有效的记录下来。CCBPM的考核分为时效考核、质量考核。时效... 查看详情