
简介和背景
自从 APEX 23.2 引入了Workflow工作流作为本机组件,APEX就有了专门用于工作流程建模和执行业务流程的能力。当Workflow工作流在给定活动中遇到错误时,它会进入“故障”状态。此时,工作流的管理员或所有者可以重试工作流。重试工作流将从故障活动中恢复执行。这就是大多数业务流程建模和执行产品(包括遵循 BPMN 2.0 标准的产品)的工作方式。查看此博客,其中讨论了如何在 APEX 24.2 之前的APEX中重试出现故障的工作流程。
然而,在现实生活中的用例中,这种故障缓解方法具有很大的限制性。
任何流程自动化解决方案最需要的功能之一是保持现有工作流实例运行,无论业务流程生命周期中可能发生任何问题,包括:
- 人为错误:如果用户在表单中输入一些错误的数据,然后使用该数据在工作流中进行分支(用户输入数量 100 而不是 1000,并且稍后在工作流中是基于该数量的切换活动),则可能会发生人为错误如果人工任务的潜在所有者意外批准了某项任务,但后来由于某种原因决定拒绝该任务,反之亦然。
- 自动化任务中的错误:工作流通过执行代码或调用 API活动来执行业务逻辑。此业务逻辑的实现中可能会出现错误,从而导致异常或将工作流发送到不需要的路径,因为业务逻辑返回了一些错误的值。
对于客户来说,对运行的工作流程进行一定的控制以解决工作流程中因人为或业务逻辑错误而导致的问题至关重要。由于现有工作流程中出现一些错误,用户不愿意重新启动工作流程,因为这意味着需要重做之前的工作;参与工作流程的人员需要再次参与,这可能既昂贵又耗时。
使用 APEX 24.2,工作流的管理员可以暂停工作流并在工作流内的任意活动处恢复它。这使得工作流程更具弹性,并允许任意重新路由故障/挂起的工作流程。现在,工作流程可以通过一组完全不同的路径进行路由,而不是保留在其原始路线上。