別のフローを呼び出すには

サブフローの利用

フローの中で、別のフローを呼び出し、その処理が実行されるよう設定できます。呼び出されるフローを「サブフロー」、呼び出す側のフローを呼び出し元フロー(メインフロー)といいます。サブフローを呼び出すには、SubFlowコンポーネントを使用します。

※ASTERIA Warp Core/Core+/Core++エディションではお使いいただけません。

ASTERIA Warp コンポーネント比較表 はこちら

SubFlowコンポーネントで別フローを呼び出す

1.対象のメインフローを表示し、フローを呼び出したい位置へ、「コントロール」タブのSubFlowコンポーネント(「サブフロー」)をドラッグして配置する

4-76-01.png

HINT

SubFlowコンポーネントをドラッグして配置する代わりに、ツリーペインのフロー一覧からサブフローをワークスペースへドラッグして配置することもできます(その場合、SubFlowコンポーネントアイコンに加えフロー名も説明として追加されます)。

サブフローは、フロー間の相対的な親子関係の中で「子」にあたるフローの呼び方であり、特別に「サブフロー」という種類のフローを指すわけではありません。

SubFlowコンポーネントの出力を呼び出し元フローで使いたい場合には、「入力をそのまま出力」プロパティの設定を「いいえ」に変更する必要があります。

2.コンポーネントを接続し、SubFlowコンポーネントアイコンを選択して、インスペクタの「実行するフロー」の値欄から、呼び出したいフロー(サブフロー)をダブルクリックする

4-76-02.png

挿入したSubFlowコンポーネントをダブルクリックすると、ワークスペースにサブフローのタブが表示され、フローの内容や設定を確認できます。

HINT

Timerコンポーネントを使って別のフローを呼び出す
Timerコンポーネントは、指定した秒数後に別のフローを実行するものですが、0秒後とするとすぐに別フローの実行が可能です。Timerコンポーネントについては、第8章の「フローからスケジュールを設定するには」も参照してください。

サブフローでストリームを受け取る

1.サブフローとして扱いたいフローを表示し、Startコンポーネントアイコンを選択する

4-76-03.png

2.Startコンポーネントのストリーム型を、メインフローの出力ストリームに合わせて設定する

4-76-04.png

HINT

サブフローを作成する場合は、通常のフローを作成します。サブフローは、Startコンポーネントで開始します。終了は任意の終了コンポーネントを使用できますが、NextFlowコンポーネントは使用できません。

サブフローにストリームを渡す
呼び出し元フローで、サブフローコンポーネントの前に配置したコンポーネントの出力ストリームが、サブフローの入力ストリームになります。サブフローの中でそのストリームを処理するには、呼び出し元フローからの出力ストリームと同じストリーム型を、サブフローのStartコンポーネントの出力ストリーム型に指定する必要があります。また、ストリームペインで同じフィールド定義を行います。呼び出し元フローからの入力を処理しない場合は、Startコンポーネントの出力ストリーム型はAnyを選択します。

3.フィールド定義を、メインフローの出力ストリームに合わせて設定する

4-76-05.png

サブフローのStartコンポーネントのストリーム型とフィールド定義を呼び出し元フローに合わせて設定することで、ストリームを受け取ることができるようになります。

HINT

サブフローからストリームを戻すには
サブフローの終了コンポーネントの出力ストリームが、呼び出し元フローのサブフローコンポーネントの出力ストリームになります。サブフローの出力を呼び出し元フローで処理する場合は、出力があるコンポーネントとして、EndResponseコンポーネントを使用します。パラレルやループ処理がある場合はBreakコンポーネント、エラーを発生させるExceptionコンポーネントを使用することもできます(サブフローの出力を呼び出し元フローで処理しない場合は、出力ストリームは無視することになります)。

4-76-06.png

CAUTION

Startコンポーネントの出力ストリーム型がAny以外の場合、呼び出し元フローでサブフローコンポーネントの前に配置したコンポーネントの出力ストリーム型と、サブフローのStartコンポーネントの出力ストリーム型が同じでない場合、エラーになります。

サブフローの変数をパラメーターとしてメインフローに渡す

1.サブフローとして扱いたいフローを表示し、右下の「変数」タブをクリックして変数ペインを表示する

4-76-07.png

2.フロー変数の「公開」にチェックマークが付いていることを確認する

4-76-08.png

HINT

フローのパラメーターとは
起動するフローのフロー変数を公開しておくことにより、呼び出し元から設定する値を取得できる仕組みのことです。サブフローで定義したフロー変数を公開することで、呼び出し元フローから、そのフロー変数をパラメーターとして設定し、値を渡すことができるようになります。

3.次に呼び出し元フローのフローウィンドウを表示し、SubFlowコンポーネントアイコンを選択して、インスペクタの「パラメーター」タブをクリックする

4-76-09.png

4.サブフローの変数がパラメーターとして設定されていることを確認する

4-76-10.png

呼び出し元フロー内のサブフローコンポーネントを選択して表示されるインスペクタの「パラメーター」タブで、サブフローで定義したフロー変数がパラメーターとして設定されていることを確認できます。

HINT

サブフローでフロー変数が公開されていれば、呼び出し元フローでサブフローを配置・設定したときに、自動的にサブフローコンポーネントに、パラメーターの情報が設定されます。

サブフロー情報の更新
呼び出し元フローでサブフローを配置したあとにサブフローの情報を変更したときは、呼び出し元フローのSubFlowコンポーネントアイコンを右クリックし、メニューから「サブフロー情報の更新」を選択して、サブフローの変更を呼び出し元フローに反映させる必要があります。

サブフローに固定パラメーター値を渡す

1.呼び出し元フローを表示し、SubFlowコンポーネントアイコンを選択して、インスペクタの「パラメーター」タブをクリックする

4-76-11.png

2.「値」欄にパラメーターの値を設定する

4-76-12.png

サブフローで設定されているフロー変数に、パラメーターの値が設定されます。

HINT

パラメーターと変数
パラメーターは、サブフローではフロー変数として使われます。フロー変数には初期値を定義でき、パラメーターとして値が渡ってこない場合には、初期値が有効になります。サブフローでフロー変数の初期値を設定した状態から、呼び出し元フローでサブフローコンポーネントの「パラメーター」タブで値を設定すると上書きされます。また、フロー変数の初期値を設定した状態、または「パラメーター」タブで値を設定した状態からマッパーによる置き換え設定をすると、値が上書きされます。

CAUTION

呼び出し元フローでパラメーターの値を設定、変更すると、サブフローでフロー変数の値を設定、変更してもパラメーターには反映されません。

サブフローに動的パラメーター値を渡す

1.呼び出し元フロー内のサブフローコンポーネントの前にMapperコンポーネントを配置する

4-76-13.png

2.Mapperコンポーネントをダブルクリックしてマッピングウィンドウを表示する

4-76-14.png

3.マッピングウィンドウ右側(出力側)のサブフローコンポーネントプロパティの「パラメーター」下のパラメーター名フィールドに値をマッピングする

4-76-15.png

マッパーにより、フローの中で生成された動的な値をサブフローに渡すことができます。マッパーによるパラメーターの置き換え設定をすると、値が上書きされます。

 

この記事は役に立ちましたか?
2人中2人がこの記事が役に立ったと言っています

他のキーワードで検索する