Choice ルータ

Choice ルータは、メッセージコンテンツを評価する一連の DataWeave 式に従ってフローで動的にメッセージをルーティングします。各式は、異なるルーティングオプションに関連付けられます。これにより、大部分のプログラミング言語の if/then/else コードブロックのような条件付き処理がフローに追加されます。

Choice ルータの系統図
Figure 1. 3 つのオプション (1 つはデフォルトオプション) がある Choice ルータの系統図

Anypoint Studio を使用して、Anypoint Exchange からサンプルプロジェクト Content-Based Routing (コンテンツベースのルーティング) をダウンロードできます。このプロジェクトでは、Choice ルータを使用するフローの稼働サンプルが提供されます。

プロジェクトを Mule アプリケーションとして実行すると、アプリケーションは次のアクションを実行します。

  1. メッセージをリスンします。

  2. メッセージを変数設定コンポーネントに渡します。このコンポーネントは、パラメータ language でメッセージに渡される言語を変数 language に設定します。

  3. Choice ルータを使用して、各メッセージに language 属性が含まれているかどうかを確認します。この属性の存在や値によって、Choice ルータによるメッセージのルーティング方法が決まります。

    • 値が French の場合、ルータはメッセージを Reply in French という名前のペイロード設定コンポーネントにルーティングします。後者のコンポーネントは、メッセージ Bonjour! をリクエスタに返します。

    • 値が Spanish の場合、ルータはメッセージを Reply in Spanish という名前のペイロード設定コンポーネントにルーティングします。後者のコンポーネントは、メッセージ Hola! をリクエスタに返します。

    • メッセージに language 属性が含まれていない場合、ルータはメッセージをデフォルトパスにルーティングします。デフォルトパスは、次の作業を行うサブフローです。

  4. メッセージ「No language specified. Using English as a default. (言語が指定されていません。デフォルトとして英語が使用されます。)」をコンソールに記録する。

  5. language の値を English に設定する。

  6. メッセージ Hello! を返す。

このサンプルプロジェクトは、フローで Choice ルータを使用してメッセージをルーティングするときに 4 つの側面を考慮する必要があることを示しています。

  • メッセージのルーティング方法を決定するために Choice ルータが評価するコンテンツ

  • ルータの数

  • デフォルトルーティングオプション

  • ルーティングオプションごとにフローで実行する処理

Anypoint Studio でこのサンプルプロジェクトをダウンロードして開くには、左上隅にある [Exchange] アイコンをクリックします。次に、開いたウィンドウで、Anypoint Exchange にログインし、プロジェクトの名前を検索します。

Was this article helpful?

💙 Thanks for your feedback!

Edit on GitHub