EOS Low-Code Platform 8 EOS Low-Code Platform 8
产品简介
学习指南
更新说明
安装与集成
上线指南
初见EOS
低代码开发手册
专业代码开发手册
专题场景实战
公共服务框架
应用运行治理
最佳实践
运维指南
  • 回退失败问题排查与解决手册
  • 现象一:点击回退按钮后,流程无响应或直接报错
  • 1. 报错信息包含“未找到活动定义,活动定义ID:null”
  • 2. 报错信息包含“回退策略配置错误”或流程卡在聚合节点
  • 3. 报错信息包含“工作项处理时发生错误”或“人工活动启动时发生错误”
  • 现象二:回退成功,但后续流程无法正常推进
  • 1. 回退到某节点后,待办任务中找不到处理人
  • 2. 在多工作项(会签)节点,部分人处理后回退,再次提交时参与者混乱
  • 现象三:界面问题——页面上没有“回退”按钮
  • 1. 符合回退条件的节点,但按钮不显示
  • 附录:快速排查清单

# 回退失败问题排查与解决手册

当遇到流程回退失败时,请根据您看到的具体现象,直接查阅下方对应的章节,按照步骤操作即可。


# 现象一:点击回退按钮后,流程无响应或直接报错

# 1. 报错信息包含“未找到活动定义,活动定义ID:null”

原因:流程定义文件可能已修改,回退的目标节点ID在最新版定义中已不存在。

解决步骤:

  1. 查询目标ID:在数据库中找到当前流程实例记录的目标活动ID。将 12345 替换为您的流程实例ID

    SELECT CURRENTACTIVITYID FROM WFPROCESSINST WHERE PROCESSINSTID = 12345;
    
  2. 检查定义:在流程设计器中打开该流程,搜索上一步查到的活动ID,确认是否被删除或重命名。

  3. 解决方案:

    • 临时修复:修改回退按钮配置,将提交策略改为跳转提交,绕过对原路径的校验。
    • 彻底修复:如果是定义错误,需修正流程定义并重新发布。注意:重新发布通常只影响新流程实例。

# 2. 报错信息包含“回退策略配置错误”或流程卡在聚合节点

原因:多分支聚合场景下,回退后,之前走过的分支被重置,但聚合节点需要所有分支条件满足才能再次通过。

解决步骤:

  1. 修改按钮策略:找到该人工节点的回退按钮配置。

  2. 启用“跳转提交”:将提交策略从原路径提交改为跳转提交。

  3. (备选方案)重置分支条件:如果必须使用原路径提交,则在回退事件中编写逻辑,手动重置所有分支的连线条件变量。

    context.relativeData.__bfp_entity.branchCondition1 = true;
    context.relativeData.__bfp_entity.branchCondition2 = true;
    

# 3. 报错信息包含“工作项处理时发生错误”或“人工活动启动时发生错误”

原因:回退成功后,启动目标活动时失败,通常是目标活动的参与者配置有问题。

解决步骤:

  1. 检查参与者:确认回退目标节点的参与者是否被正确解析。

  2. 检查事件:如果目标活动配置了“启动前事件”,请检查对应的事件服务(逻辑流/EOS服务)是否执行成功。


# 现象二:回退成功,但后续流程无法正常推进

# 1. 回退到某节点后,待办任务中找不到处理人

原因:回退操作重置了活动状态,但未正确设置新的处理人,导致参与者“丢失”。

解决步骤:

  1. 确认问题:查看流程实例,确认目标节点是否处于“等待”状态但无处理人。
  2. 解决方案:参照【现象一-第3点】的步骤,在回退按钮中重新指定参与者。不要依赖流程定义自动计算,因为历史上下文的参与者信息可能已改变。

# 2. 在多工作项(会签)节点,部分人处理后回退,再次提交时参与者混乱

原因:多工作项场景下,回退策略选择不当,破坏了原有多实例的逻辑。

解决步骤:

  1. 评估策略:在多工作项场景,慎用原路径提交。
  2. 推荐配置:
    • 如果希望回退后让所有人重新处理,建议使用跳转提交,并在回退目标节点上使用多实例(会签)配置。
    • 如果希望回退后由指定人处理,使用跳转提交并重新指定参与者为单个人。

# 现象三:界面问题——页面上没有“回退”按钮

# 1. 符合回退条件的节点,但按钮不显示

原因:按钮权限未开启,或按钮配置了显示条件。

解决步骤:

  1. 检查按钮配置:在流程设计器中,选中该人工活动,打开“操作权限”选项卡。

  2. 确认勾选:确保“回退”按钮前的复选框已勾选。

  3. 检查显示条件:查看“回退”按钮是否配置了“显示条件”。如果有,检查条件表达式在当前场景下是否返回 true。

    return this.formData.canBack === true;
    
  4. 检查首环节:流程的第一个人工环节默认不支持回退。如果业务上需要,可以在第一个环节前增加一个自动活动作为“虚拟节点”。


# 附录:快速排查清单

如果上述现象未能覆盖您的问题,请按以下清单快速排查:

  1. 看日志:搜索 bps应用eos-trace.log,关键词 backActivity、回退、21010004 等。
  2. 看策略:确认回退按钮的配置是原路径提交还是跳转提交?
  3. 看目标:回退的目标节点ID在当前的流程定义文件中还存在吗?
  4. 看权限:回退后节点的参与者是谁?是否为空?
  5. 看分支:如果是聚合节点,回退后所有分支的条件都满足吗?
  6. 看事件:回退触发的事件执行成功了吗?

← 流程参与者获取失败 工作项状态异常 →