MuleSoft-コアコンポーネントと構成

Muleの最も重要な機能の1つは、コンポーネントを使用してルーティング、変換、および処理を実行できることです。そのため、さまざまな要素を組み合わせたMuleアプリケーションの構成ファイルのサイズが非常に大きくなります。

以下は、Mule-によって提供される構成パターンのタイプです。

  • シンプルなサービスパターン
  • Bridge
  • Validator
  • HTTPプロキシ
  • WSプロキシ

コンポーネントの構成

Anypointスタジオでは、以下の手順に従ってコンポーネントを構成できます-

Step 1

Muleアプリケーションで使用するコンポーネントをドラッグする必要があります。たとえば、ここでは次のようにHTTPリスナーコンポーネントを使用します-

Step 2

次に、コンポーネントをダブルクリックして、構成ウィンドウを表示します。HTTPリスナーの場合、以下に示します-

Step 3

プロジェクトの要件に従ってコンポーネントを構成できます。たとえば、HTTPリスナーコンポーネントに対して行ったとしましょう-

コアコンポーネントは、Muleアプリのワークフローの重要な構成要素の1つです。Muleイベントを処理するためのロジックは、これらのコアコンポーネントによって提供されます。Anypoint studioでは、これらのコアコンポーネントにアクセスするには、以下に示すようにMulePaletteからCoreをクリックします。

以下は様々です core components and their working in Mule 4

カスタムビジネスイベント

このコアコンポーネントは、フローに関する情報の収集と、Muleアプリでビジネストランザクションを処理するメッセージプロセッサに使用されます。つまり、カスタムビジネスイベントコンポーネントを使用して、作業フローに以下を追加できます。

  • Metadata
  • 主要業績評価指標(KPI)

KPIを追加する方法は?

以下は、MuleアプリのフローにKPIを追加する手順です-

Step 1 −Muleをフォローする Palette → Core → Components → Custom Business Event、カスタムビジネスイベントコンポーネントをMuleアプリの作業フローに追加します。

Step 2 −コンポーネントをクリックして開きます。

Step 3 −次に、表示名とイベント名の値を指定する必要があります。

Step 4 −メッセージペイロードから情報を取得するには、次のようにKPIを追加します。

  • KPI(追跡:メタデータ要素)の名前(キー)と値を指定します。この名前は、RuntimeManagerの検索インターフェイスで使用されます。

  • 任意のMule式の値を指定します。

次の表は、名前と値を含むKPIのリストで構成されています-

名前 式/値
学生ロールNo #[ペイロード['RollNo']]
学生の名前 #[ペイロード['名前']]

動的評価

このコアコンポーネントは、Muleアプリでスクリプトを動的に選択するために使用されます。Transform Message Componentを介してハードコアスクリプトを使用することもできますが、DynamicEvaluateコンポーネントを使用する方が良い方法です。このコアコンポーネントは次のように機能します-

  • まず、別のスクリプトになるはずの式を評価します。
  • 次に、そのスクリプトを評価して最終結果を求めます。

このようにして、スクリプトをハードコーディングするのではなく、動的に選択することができます。

以下は、Idクエリパラメーターを使用してデータベースからスクリプトを選択し、そのスクリプトをMyScriptという名前の変数に格納する例です。これで、動的評価コンポーネントは変数にアクセスしてスクリプトを呼び出し、から名前変数を追加できるようになります。UName クエリパラメータ。

フローのXML構成を以下に示します-

<flow name = "DynamicE-example-flow">
   <http:listener config-ref = "HTTP_Listener_Configuration" path = "/"/>
   <db:select config-ref = "dbConfig" target = "myScript">
      <db:sql>#["SELECT script FROM SCRIPTS WHERE ID = 
         $(attributes.queryParams.Id)"]
      </db:sql>
   </db:select>
   <ee:dynamic-evaluate expression = "#[vars.myScript]">
      <ee:parameters>#[{name: attributes.queryParams.UName}]</ee:parameters>
   </ee:dynamic-evaluate>
</flow>

スクリプトは、メッセージ、ペイロード、変数、属性などのコンテキスト変数を使用できます。ただし、カスタムコンテキスト変数を追加する場合は、キーと値のペアのセットを提供する必要があります。

動的評価の構成

次の表は、DynamicEvaluateコンポーネントを構成する方法を示しています-

フィールド 説明
DataWeave式 これは、最終的なスクリプトで評価される式を指定します。 expression = "#[vars.generateOrderScript]"
パラメーター DataWeave式 キーと値のペアを指定します。 #[{joiner: 'および'、id:payload.user.id}]

フロー参照コンポーネント

Muleイベントを別のフローまたはサブフローにルーティングして同じMuleアプリ内に戻す場合は、フロー参照コンポーネントが適切なオプションです。

特徴

このコアコンポーネントの特徴は次のとおりです。

  • このコアコンポーネントを使用すると、参照されるフロー全体を現在のフローの単一のコンポーネントのように扱うことができます。

  • Muleアプリケーションを個別の再利用可能なユニットに分割します。たとえば、フローは定期的にファイルを一覧表示します。リスト操作の出力を処理する別のフローを参照する場合があります。

  • このようにして、処理ステップ全体を追加するのではなく、処理フローを指すフロー参照を追加できます。以下のスクリーンショットは、フロー参照コアコンポーネントがという名前のサブフローを指していることを示していますProcessFiles

ワーキング

Flow Refコンポーネントの動作は、次の図を使用して理解できます。

この図は、あるフローが同じアプリケーション内の別のフローを参照する場合のMuleアプリケーションでの処理順序を示しています。Muleアプリケーションのメインの作業フローがトリガーされると、Muleイベントはすべてを通過し、Muleイベントがフロー参照に到達するまでフローを実行します。

フロー参照に到達した後、Muleイベントは参照されたフローを最初から最後まで実行します。Muleイベントが参照フローの実行を終了すると、メインフローに戻ります。

理解を深めるために、 let us use this component in Anypoint Studio。この例では、前の章で行ったように、HTTPリスナーを使用してメッセージを取得しています。したがって、コンポーネントをドラッグアンドドロップして構成できます。ただし、この例では、以下に示すように、サブフローコンポーネントを追加し、その下にペイロードコンポーネントを設定する必要があります。

次に、構成する必要があります Set Payload、ダブルクリックして。ここでは、以下に示すように「実行されたサブフロー」という値を示しています。

サブフローコンポーネントを正常に構成したら、メインフローのペイロードの設定後に設定するフロー参照コンポーネントが必要です。これは、以下に示すように、ミュールパレットからドラッグアンドドロップできます。

次に、フロー参照コンポーネントを構成するときに、以下に示すように、[汎用]タブで[フロー名]を選択する必要があります。

次に、このアプリケーションを保存して実行します。これをテストするには、POSTMANに移動して次のように入力しますhttp:/localhost:8181/FirstAPP URLバーに、「サブフローが実行されました」というメッセージが表示されます。

ロガーコンポーネント

ロガーと呼ばれるコアコンポーネントは、エラーメッセージ、ステータス通知、ペイロードなどの重要な情報をログに記録することで、Muleアプリケーションを監視およびデバッグするのに役立ちます。AnyPointスタジオでは、これらは Console

利点

以下は、ロガーコンポーネントのいくつかの利点です-

  • このコアコンポーネントは、作業フローのどこにでも追加できます。
  • 指定した文字列をログに記録するように構成できます。
  • 自分で作成したDataWeave式の出力に設定できます。
  • 文字列と式の任意の組み合わせに構成することもできます。

次の例では、ブラウザのペイロードの設定に「Hello World」というメッセージが表示され、メッセージもログに記録されます。

以下は、上記の例のフローのXML構成です。

<http:listener-config name = "HTTP_Listener_Configuration" host = "localhost" port = "8081"/>
<flow name = "mymuleprojectFlow">
   <http:listener config-ref="HTTP_Listener_Configuration" path="/"/>
   <set-payload value="Hello World"/>
   <logger message = "#[payload]" level = "INFO"/>
</flow>

メッセージコンポーネントの転送

転送コンポーネントとも呼ばれる変換メッセージコンポーネントを使用すると、入力データを新しい出力形式に変換できます。

トランスフォーメーションを構築する方法

次の2つの方法を使用して、変換を構築できます。

Drag-and-Drop Editor (Graphical View)−これは、変換を構築するための最初で最も使用されている方法です。この方法では、このコンポーネントのビジュアルマッパーを使用して、受信データ構造の要素をドラッグアンドドロップできます。たとえば、次の図では、2つのツリービューが入力と出力の予想されるメタデータ構造を示しています。入力フィールドを出力フィールドに接続する線は、2つのツリービュー間のマッピングを表します。

Script View−変換の視覚的マッピングは、Muleコードの言語であるDataWeaveを使用して表すこともできます。集約、正規化、グループ化、結合、パーティショニング、ピボット、フィルタリングなどの高度な変換のコーディングを行うことができます。例を以下に示します-

このコアコンポーネントは、基本的に、変数、属性、またはメッセージペイロードの入力および出力メタデータを受け入れます。以下のフォーマット固有のリソースを提供できます-

  • CSV
  • Schema
  • フラットファイルスキーマ
  • JSON
  • オブジェクトクラス
  • シンプルタイプ
  • XMLスキーマ
  • Excelの列の名前とタイプ
  • 固定幅の列の名前とタイプ