# 最初のワークフロー

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

名前を受け取り、外部サービスを呼ばずにあいさつを返すワークフローを作成します。

Open Flow サービスと、そのワークベンチにアクセスできる環境が必要です。ローカルへの導入は[クイックスタート](https://openflow.run/ja/quickstart/)を参照してください。このサンプルは組み込みノードとローカルのコード実行のみを使います。

## サンプルをインポートする

下のワークフローファイルをダウンロードし、ワークベンチにインポートします。新しいフロー ID とリビジョン ID を持つ未公開のドラフトが作成されます。実行履歴、公開履歴、アカウントの認証情報、権限はコピーされません。

Start が名前を、Value が接頭辞を渡し、Code が組み合わせ、Outputs が最終結果を定義します。

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

**想定される結果**
{"message":"Hello, Ada!"}

**実行前の準備**
インポートや実行には Open Flow サービスが必要です。プレビュー自体はオフラインで動作します。

[ワークフローをダウンロード](https://openflow.run/docs/examples/first-workflow.openflow.json)

## 4 つのノードを確認する

1.  **Start** は、必須の文字列パラメーター `name` を定義します。
2.  **Greeting settings** は、文字列 `Hello` を再利用できる Value として保存します。
3.  **Compose greeting** は、Start の `name` と Value の `prefix` をバインドし、`message` を返します。
4.  **Workflow result** は、そのメッセージをフローの業務出力に割り当てます。

プレビューで各ノードを選択すると、設定を確認できます。ワークベンチでは、実行経路の接続と入力のバインドを別々に設定します。ノード間の線は実行できるタイミングを決めますが、入力値は選択しません。

## ドラフトを実行する

実行メニューで Start を選択し、次の値を入力します。

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

Code ノードは次の ES モジュールを実行します。

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

実行に成功すると、次の結果が返ります。

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

実行履歴でノードの入力と結果を確認してください。フローの業務出力は Outputs で定義します。Code が値を返すだけでは、ワークフローの出力にはなりません。

## 変更して公開する

接頭辞を変更してドラフトを再テストし、結果が正しければ公開します。ドラフトの編集は現在の Live バージョンに影響しません。公開に成功すると、固定されたバージョンを本番実行に利用できます。

[テストと公開](https://openflow.run/ja/docs/guides/test-and-publish/index.md)に進むか、[Condition](https://openflow.run/ja/docs/nodes/condition/index.md) や [Approval](https://openflow.run/ja/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)
