フローを条件によって分岐させるには

条件分岐(ブランチ)

条件によって処理のフローを分岐させたいときは、条件分岐用のコンポーネントを使用します。条件で処理を分岐させて、複数方向のいずれか一方にストリームが出力するように設定します。このようなコンポーネントによる条件分岐を、「ブランチ」と呼びます。

BranchStartコンポーネントで条件分岐を設定する

1.対象のフローウィンドウで、パレットの「コントロール」タブから、BranchStartコンポーネント(「条件で分岐します」)をドラッグして配置する

4-62-01.png

2.BranchStartコンポーネントの右のコネクタから、条件が一致した場合の処理を接続する

4-62-02.png

3.BranchStartコンポーネントの下のコネクタから、条件が不一致の場合の処理を接続する

4-62-03.png

HINT

BranchStartコンポーネントでは、条件一致(True)の場合の流れが右方向となります。入力ストリームや各種変数を評価するための条件式を設定すると、結果がTrueの場合は右方向へ、Falseの場合は下方向へストリームが出力されます。

BranchStartコンポーネントは、ループの中でも外でも使用可能です。

4.BranchStartコンポーネントをダブルクリックする

4-62-04.png

5.「条件式プロパティの編集」ダイアログが表示されるので、条件式を入力する

4-62-05.png

6.「OK」をクリックしてダイアログを閉じる

4-62-06.png

フローを実行すると、設定した条件式の判定に従って処理が実行されます。

HINT

入力ストリームを判定する条件式
ストリームを判定する条件式の記述には、以下の3種類の記述方法のいずれかを使用します。このうち、MQLとRQLは本製品独自の記述方法です。XPathは、W3C勧告のXPath仕様に準拠しています。式の種類を特定するためのプレフィックスを、式の前に記述します。プレフィックスは省略可能で、省略した場合はストリーム型がMIMEの場合はMQL、XMLの場合はXPath、それ以外の場合はRQLで記述されたものと見なされます。なお、条件付きレイヤーで入力する条件式も同様ですが、条件付きレイヤーでは、評価対象としてMIMEを判定することはできません。

条件式の種類 評価対象のストリーム型 プレフィックス 説明
RQL すべてのストリーム型 record: レコード形式を評価
MQL MIME mql: MIME形式を評価
XPath XML xpath: XML形式を評価

条件式の詳細については、BranchStartコンポーネントのヘルプを参照してください。

「コントロール」タブの主なブランチコンポーネント
パレットの「コントロール」タブからはブランチに関して以下のようなコンポーネントを利用できます。

※一部のコンポーネントは、ASTERIA Warp Coreエディションではお使いいただけません。

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

アイコン コンポーネント名 メニュー名
4-62-07.png Choice 多分岐処理を開始しま
4-62-08.png Switch 値で処理を分岐します
4-62-09.png SwitchRegexp 正規表現で処理を分岐します
4-62-10.png BranchStart 条件で分岐します
4-62-11.png BranchByComponentProperty コンポーネントプロパティの値で分岐します
4-62-12.png BranchByException エラーの種別により分岐します
4-62-13.png BranchByStreamType ストリームの種別で分岐します
4-62-14.png BranchEnd 分岐した処理を合流します

コンポーネントプロパティの値によって分岐するには

「コントロール」タブのBranchByComponentPropertyコンポーネント(「コンポーネントプロパティの値で分岐します」)を使うと、プロパティの値で分岐する処理を設定できます。

Switchコンポーネントで多分岐処理を設定する

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

1.対象のフローウィンドウで、パレットの「コントロール」タブから、Switchコンポーネント(「値で処理を分岐します」)をドラッグして配置する

4-62-15.png

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

4-62-16.png

HINT

Switchコンポーネントでは、文字列の値によって分岐する処理を設定できます。直前にMapperコンポーネントを配置し、「評価する値」プロパティに、比較対象となる値をマッピングします。同じ文字列が存在しない場合は、一番右のデフォルト出力コネクタに分岐します。

3.「コンポーネント」の「評価する値」へ、比較対象とする入力値をマッピングする

4-62-17.png

4.フローウィンドウでSwitchコンポーネントアイコンを選択し、インスペクタの「分岐」タブをクリックする

4-62-18.png

5.入力値と比較する文字列を「値」欄に入力する

4-62-19.png

6.比較する文字列をすべて「値」欄に入力する

4-62-20.png

7.それぞれの出力コネクタからの分岐処理に合わせてコンポーネントを配置し、接続線でつなぐ

4-62-21.png

Switchコンポーネントを設定したフローを実行すると、評価する値と同じ文字列が存在した場合は対応する出力コネクタに分岐し、同じ文字列が存在しない場合は、一番右にある出力コネクタ(「デフォ」と表示されている)に分岐します。

HINT

多分岐処理の設定
Switchコンポーネントでは文字列の値によって多分岐処理を設定しましたが、「コントロール」タブのSwitchRegexpコンポーネント(「正規表現で処理を分岐します」)では、文字列の正規表現を使った多分岐処理が可能です。また、Choiceコンポーネント(「多分岐処理を開始します」)では、インデックスによる多分岐処理を設定できます。

入力データの検証結果によって分岐するには
パレットの「ツール」タブのValidationコンポーネント(「入力データのチェック」)を利用すると、入力ストリームに対するバリデーションの結果によって、分岐処理を設定できます。

分岐の待ち合わせ
分岐を待ち合わせるには、「コントロール」タブのBranchEndコンポーネント(「分岐した処理を合流します」)を使用します。入力するすべてのリンクのストリーム定義が同じである場合、次にマッパーを配置するとマッピング可能になります。ただし、ストリーム定義が異なる場合、マッピングはできません。マッピングする場合でBranchEndコンポーネントの前に配置したコンポーネントの出力ストリームのフィールド定義を変更したときは、BranchEndコンポーネントに反映するため、右クリックして表示されるメニューから「ストリーム定義の更新」を行います。

4-62-22.png

CAUTION

ブランチによって分岐を設定する場合、実行されるのはいずれか一方となるため、その両方に結果を返す終了コンポーネント(EndResponse)を配置できます。ただし、ループとブランチの組み合わせで、ループによって両方のルートが実行される場合には、2つのEndResponseコンポーネントを配置することはできません。

 

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

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