# 第一個工作流程

Source: https://openflow.run/zh-tw/docs/guides/first-workflow/
Language: zh-TW
Product version: 0.1.0-beta.77

讓一個小工作流程接收姓名並回傳問候語，全程無需呼叫外部服務。

你需要能存取一個 Open Flow 服務及其工作台。本機安裝方法見[快速開始](https://openflow.run/zh-tw/quickstart/)。本例僅使用內建節點和本機程式碼執行能力。

## 匯入案例

下載下方的工作流程檔案，在工作台中匯入。匯入會建立一份未發布的草稿，並分配新的工作流程 ID 和修訂版本 ID。原工作流程的執行紀錄、發布紀錄、帳號憑證和權限不會一併複製。

開始節點提供姓名，固定值節點提供前綴，程式碼節點組合兩者，工作流程輸出節點宣告最終結果。

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

**預期結果**
{"message":"Hello, Ada!"}

**執行前準備**
匯入或執行此案例需要 Open Flow 服務；預覽本身可離線使用。

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

## 檢視四個節點

1.  **Start**（開始）宣告一個必填的字串參數 `name`。
2.  **Greeting settings**（問候語設定）用固定值節點儲存字串 `Hello`，供其他節點引用。
3.  **Compose greeting**（生成問候語）分別從開始節點和固定值節點綁定 `name`、`prefix`，回傳 `message`。
4.  **Workflow result**（工作流程結果）將這條訊息對應到工作流程宣告的業務輸出。

在預覽中選取節點即可檢視設定。在工作台裡，執行連線和輸入綁定需要分別設定。節點間的連線決定目標節點何時可以執行，並不決定它讀取哪個輸入值。

## 執行草稿

在執行選單中選擇開始節點，填寫：

```json
{ "name": "Ada" }
```

程式碼節點執行下面的 ES 模組：

```javascript
export default ({ name, prefix }) => ({
  message: `${prefix}, ${name}!`
});
```

執行成功後回傳：

```json
{ "message": "Hello, Ada!" }
```

開啟執行紀錄，檢視各節點的輸入和結果。工作流程的業務輸出由工作流程輸出節點宣告；僅在程式碼中回傳一個值，還不會將它設為工作流程輸出。

## 修改與發布

修改問候語前綴，重新測試草稿，確認結果後發布。編輯草稿不會影響目前線上版本（Live）。發布成功後，正式環境執行即可使用這個固定版本。

繼續閱讀[測試與發布](https://openflow.run/zh-tw/docs/guides/test-and-publish/index.md)，或加入[條件分支](https://openflow.run/zh-tw/docs/nodes/condition/index.md)和[人工審核](https://openflow.run/zh-tw/docs/nodes/approval/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)
