Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerMule 3 の Message Enricher とその機能は、Mule 4 で target パラメーターに置き換わります。Enricher では、メッセージプロセッサーのグループを実行し、現在のメッセージへの副作用がなく、出力を変数にリダイレクトすることができました。Mule 4 では、すべての non-void の操作 (<flow-ref>、<http:request>、<db:select> など) には target パラメーターと targetValue パラメーターが含まれ、各操作の出力を変数 (myVar など) にリダイレクトできます。その後、Mule フローのその他のコンポーネントは、DataWeave セレクター (vars.myVar など) を使用してそのデータにアクセスできます。
HTTP 要求から発生し、第 3 のシステムにリダイレクトする必要があるメッセージを考えてください。これに、stateLookup と呼ばれる 2 次フローを使用して抽出される state クエリパラメーターを追加します。元のペイロードまたはヘッダーを失いたくないので、元のメッセージに影響を及ぼさずにこの値を抽出する必要があります。Enricher は (郵便番号が含まれている) 現在のメッセージを使用してエンリッチメントリソースをコールアウトし、その結果でメッセージをエンリッチします。
<flow name="orderProcessingFlow">
   <http:listener .../>
   <enricher target="#[variable:state]">
       <flow-ref name="stateLookup"/>
   </enricher>
  <http:request config-ref="config" path="state" method="POST">
    <http:request-builder>
        <http:query-param paramName="state" value="#[flowVars.state]" />
    </http:request-builder>
  </http:request>
</flow>
Mule 4 では、<flow-ref> 操作で target パラメーターを使用できます。
<flow name="orderProcessingFlow">
  <http:listener .../>
  <flow-ref name="stateLookup" target="state" />
  <http:request config-ref="config" path="state" method="POST">
    <http:query-params>
      #[{'state' : vars.state}]
    </http:query-params>
  </http:request>
</flow>
Mule 4 では、操作ごとに 1 つの target 変数のみを設定できます。Mule 3 アプリケーションで複数の Enricher を設定している場合、Mule 4 では Set Variable コンポーネントを使用して同じ動作を実行できます。
<flow name="orderProcessingFlow"> ... <enricher doc:name="order-enricher"> <flow-ref name="validator-flow" doc:name="validator-flow"/> <enrich source="#[payload.validation.result]" target="#[flowVars.validationResult]"/> <enrich source="#[payload.validation.code]" target="#[flowVars.validationCode"/> </enricher> ... </flow>
<flow name="orderProcessingFlow"> ... <flow-ref name="validator-flow" target="validation" /> <set-variable value="#[vars.validation.result]" variableName="validationResult"/> <set-variable value="#[vars.validation.code]" variableName="validationCode"/> ... </flow>