Choice (<choice/>)

logo cloud IDE Cloud IDE

logo desktop IDE Desktop IDE

メッセージコンテンツを評価する一連の DataWeave 式に従ってフローで動的にメッセージをルーティングします。

各式は、異なるルーティングオプションに関連付けられます。これにより、大部分のプログラミング言語の ​if​/​then​/​else​ コードブロックのような条件付き処理がフローに追加されます。

Choice ルーターが実行するルートは 1 つのみです。つまり、最初に ​true​ と評価された式がルートの実行をトリガーし、他のルートはチェックされません。どの式も ​true​ でない場合は、デフォルトルートが実行されます。

Choice ルーターを設定するには、1 つ以上の評価する条件と、いずれかの条件が ​true​ と評価された場合に実行されるメッセージプロセッサーを指定します。さらに、定義された条件がいずれも ​true​ でない場合に実行されるデフォルトルートを設定します。

コンポーネント XML

このコンポーネントは、次の XML 構造をサポートします。

<choice doc:name="Choice" doc:id="qwolaa" tracking:enable-default-events="true" >
  <when expression=${expressionToEvaluate}> (1)
    <!-- Message processors --> (2)
  </when>
  <otherwise>
    <!-- Message processors --> (3)
  </otherwise>
</choice>
xml
1 expression​ 属性には、評価する条件が含まれています。
2 expression​ が ​true​ と評価された場合に実行される任意の数のメッセージプロセッサーを追加します。
3 条件がいずれも ​true​ と評価されなかった場合に実行される任意の数のメッセージプロセッサーを追加します。

Choice (​<choice/>​) 属性は UI および XML で設定できます。

属性名 属性 XML 説明

Choice (選択肢)​ (デフォルト)

doc:name

キャンバスに表示されるコンポーネントの編集可能な名前。

なし

doc:id

コンポーネントの自動生成された識別子。

Choice (​<choice/>​) には次の子要素があります。

子要素 説明

<when/>

Mule イベントを処理する埋め込みコンポーネントを実行する前に照合する条件を指定するための子要素。1 つ以上の ​<when/>​ 要素が許可されます。

<otherwise/>

<when/>​ 要素内で設定された条件が満たされない場合に実行する子要素。

子要素 ​<when/>​ には次の属性があります。

属性名 属性 XML 説明

Expression (式)

expression

入力を評価するために使用する DataWeave 式。式が ​true​ に評価されると、このルーティングオプションが実行されます。

Choice ルーターへのルートの追加

デフォルトでは、Choice ルーターは設定された DataWeave 式が ​true​ に評価されると実行される 1 つのルートオプションと、既存ルートのどの式も ​true​ に評価されなかったときに実行されるデフォルトルートを持ちます。複数の条件を評価して、成立した条件に応じて異なる操作を実行する必要がある場合は、ルートを追加してください。

新しいルートを追加する手順は、次のとおりです。

  1. <choice/>​ 要素内に ​<when/>​ 要素を追加します。

  2. expression​ 属性を設定して、このルートを実行する条件を定義します。

次の例では、​language​ クエリパラメーターを受け取る HTTP リスナーと、このパラメーターを評価して値に応じて対応するルートを実行する Choice ルーターを設定します。