# 开始

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

声明工作流输入，为手动调用和工作流调用提供入口。

当用户、客户端或其他工作流显式调用当前工作流时，使用开始节点（Start）。它定义工作流的具名输入，并将传入值作为输出提供给下游节点。

## 配置输入

通过 `config.inputDefs` 为每个参数声明 JSON schema 和是否允许为 null。这些定义没有默认值。不允许为 null 的参数必须提供；允许为 null 的参数省略时取 null。

```json
{
  "op": "node.add", "as": "start", "type": "start", "name": "Start",
  "config": {
    "inputDefs": { "name": { "schema": { "type": "string" }, "nullable": false } }
  }
}
```

开始节点不读取普通节点的输入来源。调用方通过 `trigger.outputs` 提供值，下游将其作为开始节点的输出引用，并另行连接执行线。

## 执行与复用

显式 Live 运行以开始节点为入口。包含开始节点的已发布工作流，可以向调用工作流节点或已声明的工作流工具提供接口。草稿测试通过运行接口传入输入值。

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

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

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

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

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

## 修改接口

删除开始节点会一并移除输入定义，撤销删除会恢复它们。重新创建开始节点时，接口为空。发布接口修改后，调用方可能需要刷新已保存的接口快照。

用[工作流输出节点](https://openflow.run/zh-cn/docs/nodes/outputs/index.md)声明要返回给调用方的业务结果。开始节点没有重试策略，也没有上游执行输入。

## 资料来源

*   [docs/authoring/node-authoring.md](https://github.com/oomol-lab/open-flow/blob/e25a738d170322734572a0b8a1323cb00b9d355a/docs/authoring/node-authoring.md)
*   [docs/control/contracts/control-api.md](https://github.com/oomol-lab/open-flow/blob/e25a738d170322734572a0b8a1323cb00b9d355a/docs/control/contracts/control-api.md#workflow-outputs)
*   [packages/open-flow/src/workbench/browser/runtime/editor/addNodeOptions.ts](https://github.com/oomol-lab/open-flow/blob/e25a738d170322734572a0b8a1323cb00b9d355a/packages/open-flow/src/workbench/browser/runtime/editor/addNodeOptions.ts)
