MuleSoft-フロー制御と変圧器

フロー制御(ルーター)

フロー制御コンポーネントの主なタスクは、入力Muleイベントを取得し、それを1つ以上の個別のコンポーネントシーケンスにルーティングすることです。基本的に、入力Muleイベントを他のコンポーネントシーケンスにルーティングします。したがって、ルーターとも呼ばれます。Choice and Scatter-Gatherルーターは、フロー制御コンポーネントで最も使用されているルーターです。

選択ルーター

名前が示すように、このルーターはDataWeaveロジックを適用して、2つ以上のルートの1つを選択します。前に説明したように、各ルートはMuleイベントプロセッサの個別のシーケンスです。選択ルーターは、メッセージの内容を評価するために使用される一連のDataWeave式に従って、フローを介してメッセージを動的にルーティングするルーターとして定義できます。

チョイスルーターの概略図

Choiceルーターを使用する効果は、フローまたはフローに条件付き処理を追加するのと同じです。 if/then/elseほとんどのプログラミング言語のコードブロック。以下は、3つのオプションがあるChoiceRouterの概略図です。その中で、1つはデフォルトルーターです。

スキャッターギャザールーター

もう1つの最も使用されているルーティングイベントプロセッサは Scatter-Gather component。その名前が示すように、スキャッター(コピー)とギャザー(統合)の基本に取り組んでいます。次の2つのポイントの助けを借りてその動作を理解することができます-

  • まず、このルーターはMuleイベントを2つ以上の並列ルートにコピー(スキャッター)します。条件は、各ルートがサブフローのような1つ以上のイベントプロセッサのシーケンスである必要があることです。この場合の各ルートは、個別のスレッドを使用してMuleイベントを作成します。すべてのMuleイベントには、独自のペイロード、属性、および変数があります。

  • 次に、このルーターは、作成されたMuleイベントを各ルートから収集し、それらを新しいMuleイベントに統合します。この後、この統合されたMuleイベントを次のイベントプロセッサに渡します。ここでの条件は、すべてのルートが正常に完了した場合にのみ、SGルーターが統合されたMuleイベントを次のイベントプロセッサに渡すことです。

スキャッターギャザールーターの概略図

以下は、4つのイベントプロセッサを備えたスキャッターギャザールーターの概略図です。すべてのルートを順番にではなく並行して実行します。

スキャッターギャザールーターによるエラー処理

まず、Scatter-Gatherコンポーネント内で生成される可能性のあるエラーの種類に関する知識が必要です。イベントプロセッサ内でエラーが生成され、Scatter-Gatherコンポーネントがタイプのエラーをスローする可能性がありますMule: COMPOSITE_ERROR。このエラーは、すべてのルートが失敗または完了した後にのみSGコンポーネントによってスローされます。

このエラータイプを処理するには、 try scopeScatter-Gatherコンポーネントの各ルートで使用できます。エラーがによって正常に処理された場合try scope、そうすれば、ルートは確かにMuleイベントを生成できるようになります。

トランスフォーマー

Muleイベントの一部を設定または削除する場合は、Transformerコンポーネントが最適です。変圧器のコンポーネントは次のタイプです-

可変変圧器を取り外します

名前が示すように、このコンポーネントは変数名を取り、その変数をMuleイベントから削除します。

可変変圧器の取り外しの構成

次の表は、可変変圧器の取り外しを構成する際に考慮すべきフィールドの名前とその説明を示しています。

シニア番号 フィールドと説明
1

Display Name (doc:name)

これをカスタマイズして、Muleの作業フローでこのコンポーネントの一意の名前を表示できます。

2

Name (variableName)

削除する変数の名前を表します。

ペイロードトランスを設定する

の助けを借りて set-payloadコンポーネントでは、メッセージのペイロード(リテラル文字列またはDataWeave式)を更新できます。複雑な式や変換にこのコンポーネントを使用することはお勧めしません。それはのような単純なものに使用することができますselections

次の表は、セットペイロードトランスフォーマーを構成する際に考慮すべきフィールドの名前とその説明を示しています。

フィールド 使用法 説明
値(値) 必須 ペイロードを設定するには、filedされた値が必要です。ペイロードの設定方法を定義するリテラル文字列またはDataWeave式を受け入れます。例は「いくつかの文字列」のようなものです
MIMEタイプ(mimeType) オプション これはオプションですが、メッセージのペイロードに割り当てられた値のmimeタイプを表します。例はテキスト/プレーンのようなものです。
エンコーディング(エンコーディング) オプション これもオプションですが、メッセージのペイロードに割り当てられる値のエンコーディングを表します。例はUTF-8のようなものです。

XML構成コードを介してペイロードを設定できます-

With Static Content −次のXML構成コードは、静的コンテンツを使用してペイロードを設定します−

<set-payload value = "{ 'name' : 'Gaurav', 'Id' : '2510' }" 
   mimeType = "application/json" encoding = "UTF-8"/>

With Expression Content −次のXML構成コードは、式のコンテンツを使用してペイロードを設定します−

<set-payload value = "#['Hi' ++ ' Today is ' ++ now()]"/>

上記の例では、今日の日付にメッセージペイロード「Hi」を追加します。

可変変圧器を設定する

の助けを借りて set variableコンポーネントでは、変数を作成または更新して、Muleアプリケーションのフロー内で使用するために、文字列、メッセージペイロード、属性オブジェクトなどの単純なリテラル値を格納できます。複雑な式や変換にこのコンポーネントを使用することはお勧めしません。それはのような単純なものに使用することができますselections

セット可変変圧器の構成

次の表は、セットペイロードトランスフォーマーを構成する際に考慮すべきフィールドの名前とその説明を示しています。

フィールド 使用法 説明
変数名(variableName) 必須 提出が必要であり、変数の名前を表します。名前を付けるときは、数字、文字、アンダースコアを含める必要があるため、命名規則に従ってください。
値(値) 必須 変数を設定するには、提出された値が必要です。リテラル文字列またはDataWeave式を受け入れます。
MIMEタイプ(mimeType) オプション これはオプションですが、変数のmimeタイプを表します。例はテキスト/プレーンのようなものです。
エンコーディング(エンコーディング) オプション これもオプションですが、変数のエンコーディングを表します。例はISO10646 / Unicode(UTF-8)のようなものです。

以下の例では、変数をメッセージペイロードに設定します-

Variable Name = msg_var
Value = payload in Design center and #[payload] in Anypoint Studio

同様に、以下の例では、変数をメッセージペイロードに設定します-

Variable Name = msg_var
Value = attributes in Design center and #[attributes] in Anypoint Studio.