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>