在流程建模的时候,定义好了返回的线路,这种严格来说,不是回退流。例如,审核不通过,则返回重新填写,这种只是条件路由。
工作流的回退流,是流程实例在流转的过程中,可以回退到运行轨迹的任意步骤,同时还可以辅助一些业务补偿方法,使得回退时候的环境和原来执行时候的环境一样。
所以回退流,和流程引擎支持的正常的路由方式是不一样的,甚至是反流程建模的方式,流程建模就是把业务流程的各业务处理过程按一定的流转方式建立起关联。而回退流,是没有规律的,当流转到一定的步骤后,可以回退到任意的步骤。
当流程的流转方式为顺序流的时候,处理回退很简单:
顺序流:
当运行到最后一个步骤时,可以选择 回退到 前面的任意步骤。而不是按照流程定义的方式,接着往下执行。
实现过程:关闭当前执行的步骤--》转入历史步骤--》指定回退的步骤为当前可执行的步骤--》生成指定回退步骤的任务--》辅助执行业务补偿类(可选的)
条件路由:
实现过程:和顺序流的处理类似,当需要回退的时候,关闭当前的可执行步骤--》送入历史步骤--》建立回退到的步骤为当前可执行步骤--》生成指定回退步骤的任务--》辅助执行业务补偿类(可选的)
分支路由:
上一篇文章主要讲了分支和聚合,分支包含静态分支和动态分支,都是同时产生并发的分支线路。静态分支用静态聚合来汇聚,动态分支用动态聚合来汇聚。按正常的流转方式,静态分支和动态分支,按照流程建模时候的路由方式,继续向前流转。但是如果选择回退,回退的处理就和顺序流等不一样,回退到分支上,回退到主干上,处理过程会不同。
单层的分支:
当流转到分支节点,产生并发的分支时
分支--回退到--分支,处理过程:关闭当前分支节点--》转入历史步骤--》回退到的分支节点步骤为当前可执行步骤--》生成指定回退到的步骤的任务--》辅助执行业务补偿类(可选)
其它的分支不受影响。
分支--回退到--主干,处理过程:关闭所有分支上的当前步骤--》转入历史步骤--》回退到的主干节点步骤为当前可执行步骤--》生成指定回退到的步骤的任务--》辅助执行业务补偿类(可选)。
所有分支都被关闭,回退到主干节点上。
主干--》回退到--分支,处理过程:关闭当前主干上的当前步骤--》转入历史步骤--》回退到的分支节点步骤为当前可执行步骤--》生成指定回退到的步骤的任务--》辅助执行业务补偿类(可选)
只生成回退到的分支节点为当前可执行步骤,其它并行节点不生成,当此分支执行完成,汇聚的时候,配合其它分支节点的历史步骤的执行情况,来满足汇聚的条件。就如只有此回退到的分支需要重新执行一次,其它的分支不用重新执行。
多层的分支:
当有分支嵌套的时候,回退的处理又更加复杂
单层的分支--回退到--本分支,处理过程,同上面单层分支--分支。其它的分支均不受影响,只在本分支上面回退。
单层的分支--回退到--上层分支的主干,处理过程:
递归出上层分支的所有下级分支节点
||
关闭这些节点的所有当前步骤
||
送入历史步骤
||
生成回退到的上层分支主干的节点为当前步骤
||
生成指定回退到步骤的任务
||
辅助执行业务补偿类(可选)
任意分支--回退到--主干,处理过程:关闭所有的多层分支的当前步骤--》送入历史步骤--》回退到的主干节点步骤 为当前步骤--》生成指定步骤的任务--》辅助执行业务补偿(可选)
这种回退处理比较清晰,关闭掉所有并行的一级分支,二级分支等等。
上层分支的主干--回退到--任意分支步骤:
关闭分支主干上的当前步骤--》送入历史步骤--》生成回退到的分支节点步骤为当前步骤--》生成回退步骤的任务--》辅助业务补偿(可选)
其它并发分支线不受影响。
主干--回退到--分页分支:
只生成回退到的分支节点
处理过程:关闭主干节点的当前步骤--》送入历史步骤--》生成回退到的分支节点为当前步骤--》生成回退到步骤的任务--》辅助业务补偿(可选)
其它分支线不受影响,取其它分支的历史步骤 和 当前分支 步骤 匹配 汇聚节点的条件。就如同某分支需要重做,其它分支不需要重新处理。
- 大小: 17.1 KB
- 大小: 19.6 KB
- 大小: 41.5 KB
分享到:
相关推荐
回退,或者说Rollback WorkItem,是指在工作流系统中,参与者主动将已经执行过的任务从待办任务列表中回退,以便某个节点可以重新处理。这通常发生在参与者发现任务不应由自己处理,或者在执行过程中出现错误的情况...
这种机制的存在极大地增强了工作流系统的灵活性和适应性。 #### 为什么需要回退? 参与者在接受任务后可能会发现该任务不应由自己处理,或是之前的执行者存在失误等情形,这时就需要将任务回退给前一节点的执行者...
工作流回退是一种在工作流管理系统中常见的操作,它允许用户将流程实例回滚到先前的状态,以便纠正错误或响应业务需求的变化。胡长城(银狐999)在他的文章《工作流回退常用模式分析》中深入探讨了工作流回退的各种...
5. **异常处理和回退机制**:工作流系统需要有完善的异常处理机制,当发生错误时能够及时通知,并提供回退到前一状态的能力,确保流程的正确性。 6. **审计和监控**:为了保证工作流的透明度和可追溯性,系统应提供...
5. **流程控制**:根据业务需求,可能需要对流程进行控制,例如:跳过任务、分支、合并、回退等,这些都可以通过Java代码与工作流引擎交互来实现。 6. **监控和管理**:工作流引擎通常提供管理接口,允许管理员查看...
工作流实例是业务自动化中的一个重要概念,它涵盖了组织内各种任务、活动和决策的系统化管理,以确保流程的高效性和一致性。工作流实例是指在特定时间启动并按预定顺序执行的一系列工作流程活动。这些实例是根据预先...
7. **错误处理和回退机制**:工作流系统应该有容错机制,当某个任务失败时,能够恢复到上一步或者提供备用方案。JavaScript的try...catch结构和Promise可以帮助我们处理这些问题。 总的来说,使用JavaScript实现...
本文将基于给定的“ABAP 工作流配置示例”,详细介绍如何在SAP ECC6环境下配置一个简单的工作流,实现当物料创建时触发工作流并让用户决定是否查看该物料的功能。 #### 二、准备工作 在进行工作流配置之前,确保...
在IT行业中,工作流系统被广泛应用于各种业务场景,如订单处理、审批流程、文档管理等。而VML(Visual Modeling Language)在这里可能是指一种用于描述和可视化工作流的标记语言。 VML实现工作流主要涉及以下几个...
4. 回退和重试机制:在流程执行过程中,可能会遇到错误或异常,工作流系统需要有处理这些问题的策略,如回滚到上一步骤或重新执行某个任务。 5. 数据管理:工作流实例往往涉及数据交换,例如文章内容、审核意见等,...
在工作流系统中,任务回退是一种常见的需求,特别是在OA系统中。任务回退是指在某个流程中,如果上级认为下级的审批不符合规范,可以将任务回退给下级部门重新审批。回退可以分为单级回退和多级回退,标准流程必须回...
工作流(Workflow)是软件系统中管理业务流程的关键部分,特别是在审批流中,它涉及到组织内多个人员的协作和决策过程。JavaScript(js)作为客户端脚本语言,经常用于构建用户交互丰富的Web应用,包括实现工作流和...
在批核系统中,工作流通常包括任务分配、审批、回退、转交等功能,能够帮助用户高效地处理日常业务。这种系统广泛应用于金融、政府、制造等行业,用于审批贷款、报销单据、合同签署等流程。 **.NET 3.5框架** .NET ...
工作流系统作为一种重要的业务自动化工具,其核心价值在于优化企业内部流程,提高工作效率与响应速度。根据提供的“工作流系统功能列表”文档,我们可以深入探讨其中的关键知识点,这些功能不仅体现了工作流系统的...
标题中的“JBPM4.4实现一种无需指定上一节点(previous activity)的流程驳回(回退)”是指在使用JBPM(Java Business Process Management)4.4版本时,设计了一个特殊的流程控制机制,允许用户在执行流程过程中进行回...
此外,工作流引擎还可以提供如暂停、恢复、回退等功能。 在“workflow20110829”这个文件中,很可能是包含了一个具体的工作流示例或库。它可能包括了预定义的工作流模板、工作流状态机的实现,甚至是一个完整的基于...
WF工作流的生命周期包括创建、实例化、执行、暂停、终止和回退等阶段。开发者可以利用WF提供的工具和API来控制这些阶段。例如,WF调试器就是用来检查和调试工作流实例的重要工具,它可以帮助开发者跟踪工作流的执行...
开发者可以通过它了解如何设计和实现一个实际的业务流程,同时掌握回退功能的实现方法。 总之,JBPM4.4的请假流程实例是一个全面展示流程管理能力的案例,它涵盖了从流程设计、部署到运行的全过程,并特别强调了回...
《工作流系统功能列表 2004A 版.pdf》可能列出了一个典型工作流系统应该具备的功能点,这对于开发者理解和构建功能齐全的系统很有帮助。 最后,《小论工作流应用在国内的三大未来市场.pdf》可能展望了工作流技术在...