Skip to content

退回工作

基本使用

引擎支持预设退回和自由退回两种模式。

预设退回指在流程中通过判断节点实现的退回,当匹配特定条件时流程走向之前的节点。适用于条件清晰、退回位置较少的场景。

自由退回指通过调用引擎API,自由指定退回目标位置的方式。适用于退回位置较多,无法在流程中配置的场景。

下面给出自由退回的示例。

java
@Autowired
WorkflowEngine engine;

engine.reject(new WorkRejectDto(vo.getWorkId(), "archive", "node_check1", dto.getDealMsg(), null));

注意

自由退回的目标节点只能为开始节点用户节点

用户指定退回节点

特别地,在工作可以退回到多个节点的情况下,由用户自主选择要退回到哪个节点会非常灵活。流程管理员可以根据需要配置回退设置,开启或关闭此功能。

节点配置

如下图所示,在流程设计器属性面板的回退设置中,可以指定“退回位置”的选择模式。

reject

下面对三种模式分别作简要介绍。

  • 默认模式

    由流程设计器中的连线指定退回节点,或者由开发人员通过API指定退回节点。

  • 任意经过的节点

    由用户选择要退回到的节点,选择范围为当前工作经过的所有节点。

  • 指定范围

    由用户选择要退回到的节点,选择范围为流程管理员指定的节点。

用户选择

管理员开启用户选择节点模式后,在退回工作时就会展示节点列表,供用户选择。如下图所示。

reject user

提示

当可选节点仅有一个时,不展示选择界面,无需用户选择。

工作未经过的节点不会出现在节点列表中。

数据传递

用户选择的节点会存储在工作组件中,开发人员应主动获取此信息并传递至后台处理。具体请查看工作组件 entry.getData 方法。