回退(Rollback WorkItem)
回退是工作流参与者对自己“待办任务”(实际是对工作项)的一种操作,即参与者主动回退待办任务列表中的任务到已经执行过的人工节点。
为什么要回退?
参与者接受任务后,发现不应由自己办理此任务或以前的执行者办理有错误等情况后,需要将此接受的任务回退给以前某个节点的执行者重新办理。
回退模式
回退的情况实际上是非常复杂的,其中包括了参与者的重新选择以及回退的条件判断等等。这里先列出常见的回退模式(其实也是我们支持的模式)。
串行
<!---->
这种情况最为简单,后续节点可以回退到前续任意人工节点。回退后,节点重走。
分支
<!---->
这种情况也相对简单,实际执行的分支上的节点可以回退到前续任意人工节点(不区分主支和分支)。同样,主支上的节点也可以回退到任意实际执行的分支上的节点。
可能的问题:多次回退后的回退节点选择。例如:第一次流程经过节点2、节点3到达节点5,节点5可以回退到节点1、节点2和节点3的任意一个,此时节点5回退到节点1,节点1重走,这一次流程改为经过节点4到达节点5,节点5回退时如何选择回退节点?此时的策略是以最近实际执行的分支为准,即节点5只允许回退到节点4和节点1,不允许回退到节点2和节点3。(抹去记忆)
并发
<!---->
对于并发的情况,分支节点只允许在分支的节点间回退。
<!---->
同理,主支节点也只允许在主支的节点间回退。
多实例汇聚
<!---->
在这种情况下,节点5会产生2个实例,实际相当于继续并发。节点5根据具体哪个节点触发的它而产生回退节点。同时不允许回退到节点1以及前续的节点去。
子流程
<!---->
支持子流程到父流程的回退,也支持父流程到子流程节点的回退。需要注意的是子流程节点有可能产生多个子流程实例,在这种情况下不支持父子流程之间的相互回退。
回退节点的参与者选择
默认策略是由原先节点的实际参与者重新处理,比如节点2回退到节点1,则节点1的实际参与者重新处理该节点任务。这也符合大多数实际的业务场景。
在节点任务竞争参与的情况下,提供另一种策略,即让人员重新竞争。
回退的条件判断
对于多人(或者多部门,用户)参与的工作项,提供不同的回退策略
任意人回退即回退,剩余工作项手工终止
最后提交人回退才回退
流程定义期定义该策略。
另外流程定义时提供节点可回退列表,由用户在定义期对可回退的节点进行限制。
关于业务补偿
业务补偿是一个很重要的概念,在回退的情况下需要相应的回退部分业务操作。这里由引擎提供统一的接口,返回回退路径,由客户自定义代码进行匹配处理。
关于实现
很多工作流引擎通过流程定义时绘出回退线来显式的支持回退,这种实现在业务复杂的情况下会造成流程图的异常烦琐,但是比较清晰,实现比较容易。隐式实现相比而言优点更多。
分享到:
相关推荐
以下是关于工作流回退模式的详细分析: 首先,回退(Rollback WorkItem)是参与者对工作项的操作,参与者可以主动将当前任务回退到已执行过的某个人工节点,以便由之前的执行者重新处理。这一操作的必要性在于处理...
### 工作流回退模式设计分析 #### 回退的概念与重要性 在现代企业信息化建设中,工作流管理已成为提升工作效率、优化业务流程的关键技术之一。而在工作流的实际应用过程中,不可避免地会遇到需要回退的情况。所谓*...
胡长城的这篇文章旨在填补这一空白,提供了一系列实用的工作流回退模式。 ### 2. 简单退回 #### 2.1 退回到前活动 这是最基本的回退模式,将任务返回给上一个活动的最后一个或所有执行者。这里的关键考虑点包括...
胡长城老师(银狐999)工作流设计分析文档,向胡长城老师致意!内容包括:工作流基础知识;工作流模型分析;工作流设计器开发;工作流授权控制模型;...工作流回退常用模式分析;工作流之星光等。再次想银狐999致意!
《工作流回退常用模式分析.pdf》将关注工作流异常处理和回溯机制,这是确保业务流程能够适应不可预见情况的重要方面。 《工作流授权控制模型.pdf》则可能专注于工作流中的权限和访问控制,解释如何确保任务的安全...
例如,回退模式和传阅模式在办公自动化系统和其他流程驱动的应用中非常常见,它们体现了业务过程的复杂性和多样性。 工作流技术的研究仍在发展之中,对控制流规格的深入理解和分析对于构建灵活且适应性强的工作流...
通过上述分析,可以看出工作流系统的功能极其丰富,几乎覆盖了所有可能的业务流程需求。这不仅体现了工作流系统的设计深度和广度,也反映了其在现代企业信息化建设中的核心地位。通过合理配置和利用这些功能,企业...
打开Workflow1.cs进入工作流的Design模式,会看到一个默认的工作流结构,其中包含一个`onWorkflowActivated`活动。这个活动是所有SharePoint工作流的起点,需要注意的是: - `CorrelationToken`:用来标识一组相关联...
本文主要围绕着工作流模式的核心概念进行深入探讨,旨在为读者提供一套完整的工作流分析方法论。通过细致地解析不同的工作流模型及其应用场景,帮助读者更好地理解和掌握工作流设计的关键要素。 #### 1. 概述 工作...
这部分讲述了如何在EMSFLOW中实现工作流的回退功能,以便在必要时撤销已经执行过的步骤。 **5.4 EMSFLOW工作流对系统数据与业务数据的访问** 这一部分讨论了EMSFLOW如何访问系统数据和业务数据,以及在不同场景下的...
此外,工作流引擎还能够根据实际情况进行任务的回退、转发以及调整。 3. 文档管理 在工作流程的执行过程中,工作流引擎需要管理各种文档和资料。这些文档可能需要在流程的不同阶段被创建、修改或审查。工作流引擎...
1. 工作流管理:设计、发布、跟踪工作流,支持并行分支、会签、回退等复杂流程。 2. 公文流转:实现公文的创建、审批、归档全过程管理,支持公文模板,提高效率。 3. 任务管理:分配、接收、完成任务,可设置任务...