# 開始

Source: https://openflow.run/zh-tw/docs/nodes/start/
Language: zh-TW
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-tw/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)
