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.