# ワークフロー出力

Source: https://openflow.run/ja/docs/nodes/outputs/
Language: ja
Product version: 0.1.0-beta.77

ノードログとは別に、ワークフローが返す業務結果を定義します。

Outputs は、ワークフローが成功したときに呼び出し元へ返す値を定義します。Code や Connector の結果は、ワークフローのインターフェースに割り当てるまではノード結果です。

## フィールドと取得元を定義する

フローに置ける Outputs は最大 1 つです。`config.outputDefs` で名前付きフィールドを定義し、`node.add.inputs` または `input.set` で取得元を指定します。

```json
{
  "op": "node.add", "as": "outputs", "type": "outputs", "name": "Workflow result",
  "config": {
    "outputDefs": { "message": { "schema": { "type": "string" }, "nullable": false } }
  },
  "inputs": { "message": { "kind": "output", "node": "$greet", "port": "message" } }
}
```

`$greet` は同じ編集バッチ内で先に作成した Code を参照します。Outputs までの実行経路は別途接続してください。定義にデフォルト値はありません。

## 実行時の動作

Outputs は実行経路の終端です。通常の合流規則に従って前段を待ち、選択された経路から各フィールドの値を計算します。下流への実行エッジやデータポートはありません。

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

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

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

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

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

成功結果はノードログとは別に保持されます。Call Workflow はこの業務出力を受け取ります。空の Outputs を実行すると空オブジェクトになり、Outputs のないフローは業務結果を定義しません。

## HTTP 応答

Webhook は、実行全体の成功後に Outputs を返すことができます。実行を続けながら先に応答できる [Webhook Response](https://openflow.run/ja/docs/nodes/webhook-response/index.md) とは異なります。Outputs がスキップされると、動的なワークフロー出力の HTTP 応答は返せません。

## 参照元

*   [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)
