# 工作流与节点

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

分清工作流定义、画布布局，以及由它创建的运行记录。

**工作流**（Flow）是具有固定身份的顶层资源，拥有可编辑的草稿、已发布版本和独立的生命周期。账号名下的标签可以用于整理工作流，不影响其执行定义。

## 节点

节点承担入口、任务、常量、判断、等待和工作流输出等职责。节点 ID 与名称相互独立。重命名不会破坏引用，删除后重新创建则会得到一个新的节点 ID。

每个执行节点都有自己的配置。复制代码节点后，即使内部实现复用了模块，两份代码也必须能够独立编辑。

开始节点提供姓名，固定值节点提供前缀，代码节点组合两者，工作流输出节点声明最终结果。

**输入**
{"name":"Ada"}

**预期结果**
{"message":"Hello, Ada!"}

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

[下载工作流](https://openflow.run/docs/examples/first-workflow.openflow.json)

## 执行图

执行连线连接节点及所选分支。数据绑定则单独把具名输入关联到固定值或可用的数据源。详见[输入与输出](https://openflow.run/zh-cn/docs/concepts/inputs-and-outputs/index.md)和[执行行为](https://openflow.run/zh-cn/docs/design/execution-model/index.md)。

## 画布布局

节点位置、视口和注释与执行语义分开保存。移动节点或添加注释，不会改变业务行为。发布时会固定相应的画布快照，供日后查看。

文档中的 Preview 支持临时移动节点和恢复布局。这些改动仅在当前预览中生效，不会写回传入的工作流文件。

## 工作流文件

`.openflow.json` 文件包含执行定义，也可以包含画布布局。导入时会创建未发布的草稿，并分配新的工作流 ID 和修订版本 ID。导入会清除外部账号连接引用，以及支持清除的变量和事件源绑定，随后需要重新选择当前部署环境中的资源。

代码、提示词和 JSON 中的业务常量会保留。分享前应检查导出文件。详见[工作流文件契约](https://openflow.run/zh-cn/docs/reference/contracts/index.md)。

## 资料来源

*   [docs/architecture.md](https://github.com/oomol-lab/open-flow/blob/e25a738d170322734572a0b8a1323cb00b9d355a/docs/architecture.md#flow-revision-and-presentation)
*   [docs/authoring/node-authoring.md](https://github.com/oomol-lab/open-flow/blob/e25a738d170322734572a0b8a1323cb00b9d355a/docs/authoring/node-authoring.md)
