Skip to content

[Feat]: 流程编排的if,for,while的上一步判断情况更改,流程编排"上一步失败/成功"无法获取嵌套子步骤的实际结果 #1147

Description

@qwqk423

请确保您已阅读以上注意事项,并勾选下方的确认框。

  • 我确定这是一个从未被提出和实现过的功能。
  • 我已经在 Issue Tracker 以及 Pull Request 中找过我要提出的功能,没有找到相同功能的 Issue 和 PR。
  • 我已知晓并同意,此处仅用于建议新功能。若这个 Issue 是关于其他非主题的问题,则我的 Issue 可能会被无条件自动关闭/锁定。
  • 我已知晓并同意,如果我不按照模板提供的指示进行填写,则我的 Issue 可能会被无条件删除。

需要添加的功能内容

在流程编排中,使用嵌套的"如果"/"循环次数"/"条件循环"步骤,并且后续步骤依赖"上一步成功"或"上一步失败"条件时,判断结果不正确。

典型流程结构:

[11] 如果 · 图片不存在 · A.png → 条件成功 (True)
[11/1] 如果 · 图片不存在 · B.png → 条件成功 (True)
[11/1/1] 如果 · 图片不存在 · C.png → 条件失败 (False)
[12] 条件循环 · 上一步失败 → 预期进入循环,实际不进入
步骤 11/1/1 明确返回了失败,但步骤 12 的"上一步失败"判断的是步骤 11(最外层"如果")的结果,而步骤 11 始终返回成功,导致无法感知到深层子步骤的实际执行结果。

同样问题也存在于"循环次数"和"条件循环"——循环体内的子步骤全部返回失败,但循环本身始终报告成功,导致后续"上一步失败"判断失效。
期望行为
"如果"步骤:条件为 True 时,应返回子步骤中最后一个执行步骤的实际结果
"循环次数"步骤:应返回循环体内最后一次迭代的实际结果
"条件循环"步骤:同上
涉及文件
module/workflow/init.py
原因
_execute_steps() 遍历完列表后固定返回 (True, None),if/for/while 步骤直接使用该返回值,忽略了 self.last_result 中记录的实际结果。

什么场景下需要该功能?

涉及文件

module/workflow/__init__.py

_execute_step 方法里

流程编排

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions