サブフローとは、ワークスペースでノードの集まりを1つのノードにまとめたものを指します。
フローの見た目の複雑さを減らすため、 または複数の場所で使用する再利用可能なフローとしてノードのグループをまとめるために利用できます。
作成されたサブフローは利用可能なノードのパレットへ追加されます。 サブフローの個々のインスタンスは他のノードと同様にワークスペースに追加されます。
Note: サブフローは直接的であれ間接的であれ、それ自身のインスタンスを含むことができません。
サブフローは、メニューで「サブフロー -> サブフローを作成」オプションを選択することで作成できます。 これは空のサブフローを作成し、ワークスペースでサブフローを展開します。
リファレンス | |
---|---|
ショートカットキー | なし |
メニューオプション | サブフロー -> サブフローを作成 |
動作 | core:create-subflow |
メニューから「サブフロー -> 選択部分をサブフロー化」オプションを選択することで、 現在選択しているノードをサブフローに変換することもできます。 このノードは新しいサブフローへと移動し、 フローではサブフローインスタンスノードに置換されます。
サブフローを作成する
不正なサブフロー選択
サブフローへの変換は選択範囲に入ってくるワイヤーが1つのノードに接続されている場合のみ可能です。 結果としてサブフローノードは最大1つの入力を持つことができます。
リファレンス | |
---|---|
ショートカットキー | なし |
メニューオプション | サブフロー -> 選択部分をサブフロー化 |
動作 | core:convert-to-subflow |
サブフローを開いて内容を編集するには2つの方法があります。 パレットでこのノードをダブルクリックする、 またはサブフローインスタンスノードの編集ダイアログで「フローのテンプレートを編集」ボタンをクリックします。
ワークスペースでサブフローは新しいタブとして開かれます。 一般的なフローのタブとは異なり、サブフロータブは閉じて非表示にすることができます。
サブフローを編集する
サブフローの入出力は、 通常どおりフローに繋げることができる灰色の正方形のノードで表示されます。
ツールバーには、これらのノードを追加および削除するためのオプションがあります。 通常のフローノードと同様に、最大1つの入力と必要な数の出力があります。
ツールバーは、サブフローへの’status’出力の追加をオプションとして提供します。 これはサブフローインスタンスのノードのステータスを更新するために使用されます。
「プロパティを編集」ボタンはサブフロープロパティ編集ダイアログを開きます。 フロープロパティ編集ダイアログでは、サブフローの名称と詳細を設定することができます。
Subflow edit dialog - properties, module properties, description and appearance tabs
Editing subflow properties
Editing subflow property UI
編集ダイアログの’Properties’タブは、 カスタマイズされる各サブフローのインスタンスのプロパティのセットを定義するのに使用されます。 プロパティはサブフロー内に環境変数として展開されます。
プロパティテーブル内の各エントリはサブフローのインスタンスが編集される際に、 どのように表示されるかカスタマイズできます。 ‘UI Preview’タブは、それがどう表示されるかのプレビューを提供します。
The Module Properties tab can be used to set additional meta-data about the Subflow, including version, license and module name. These can be used when packaging the Subflow as an npm module.
外観タブはつぎのオプションを提供します:
サブフローツールバーの「サブフローを削除」ボタンは、 サブフローとそのすべてのインスタンスノードを削除するために利用できます。
Node-RED: Low-code programming for event-driven applications.
Copyright OpenJS Foundation and Node-RED contributors. All rights reserved. The OpenJS Foundation has registered trademarks and uses trademarks. For a list of trademarks of the OpenJS Foundation, please see our Trademark Policy and Trademark List. Trademarks and logos not indicated on the list of OpenJS Foundation trademarks are trademarks™ or registered® trademarks of their respective holders. Use of them does not imply any affiliation with or endorsement by them.
The OpenJS Foundation | Terms of Use | Privacy Policy | OpenJS Foundation Bylaws | Trademark Policy | Trademark List | Cookie Policy