# 运行与结果

Source: https://openflow.run/zh-cn/docs/concepts/runs/
Language: zh-CN
Product version: 0.1.0-beta.77

查看一次运行中的节点调用、待处理决定和最终业务结果。

一次运行（Run）使用固定的定义和配置，执行一个选定入口。同一工作流可以有多次运行，每次都有自己的输入、节点结果、人工决定和最终状态。

## 输入与节点结果

查看节点输入，可以了解所选执行路径上实际收集到的值；查看输出，可以了解通过校验后提交的结果。“最新结果”便于查看，但其他节点不能借它绕过数据依赖。

工作流输出节点声明最终业务结果。日志、节点结果和工作流输出用途不同，保留规则也各自独立。

## 等待

等待和审批节点会暂停同一次运行中的局部分支，其他已就绪的分支仍可继续。系统接受决定后，会恢复原分支，不会另建一次运行。

等待节点暂停当前分支，接受继续请求后，在同一次运行中返回结果。

**输入**
启动工作流，再对待处理的等待项提交继续请求。

**预期结果**
{"message":"Review finished"}

**运行前准备**
导入或执行此案例需要 Open Flow 服务；预览本身可离线使用。

[下载工作流](https://openflow.run/docs/examples/wait-and-resume.openflow.json)

提交等待或审批决定时，需要指定运行 ID 和等待项 ID。最先被接受的决定生效，重复提交不会覆盖它，也不会再排队执行一次。

## 最终结果

运行成功表示选中的任务已完成；失败表示已有明确的失败结果。取消和超时各有对应状态。结果不确定（`indeterminate`）表示部署端无法确认外部操作是否已经完成。

重试前应分清这些状态。下游步骤失败，不代表此前的外部写入已被撤销。

## 恢复与保留

部署端会持久化恢复执行所需的信息，例如已完成的结果、等待项，以及支持恢复的 Agent 后续执行信息。恢复遵循执行契约，不能为了补齐缺失数据而重复结果尚未确认的外部操作。

最终结果和决定回执与普通事件日志分开保留。保留期限和资源限制由部署端决定。详见[部署职责](https://openflow.run/zh-cn/docs/reference/deployment/index.md)。

## 资料来源

*   [docs/control/contracts/control-api.md](https://github.com/oomol-lab/open-flow/blob/e25a738d170322734572a0b8a1323cb00b9d355a/docs/control/contracts/control-api.md#5-run)
*   [docs/architecture.md](https://github.com/oomol-lab/open-flow/blob/e25a738d170322734572a0b8a1323cb00b9d355a/docs/architecture.md#wait-and-agent)
