---
schema_version: "1"
id: abdee91577880a8397459e3c8f490342e6e89f4bc393a1257ec9850a5488b287
title: 対象変数への Enricher の移行
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/mule-runtime/4.8/migration-core-enricher.md
canonical_url: https://docs.mulesoft.com/jp/mule-runtime/4.8/migration-core-enricher
source_site: docs.mulesoft.com
content_type: documentation
content_hash: a1b47bbe5921708ab0a4efb65ced9779e19d1377d11e3b617731e93e3d7339e0
description: MuleSoft Documentation Site
release: "4.8"
latest: false
---
# 対象変数への Enricher の移行

Mule 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 は (郵便番号が含まれている) 現在のメッセージを使用してエンリッチメントリソースをコールアウトし、その結果でメッセージをエンリッチします。

Mule 3 の例

<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`​ パラメーターを使用できます。

Mule 4 の例

<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>

## [](#複数の-enricher-の移行)複数の Enricher の移行

Mule 4 では、操作ごとに 1 つの ​`target`​ 変数のみを設定できます。Mule 3 アプリケーションで複数の Enricher を設定している場合、Mule 4 では ​`Set Variable`​ コンポーネントを使用して同じ動作を実行できます。

Mule 3 の例

<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>

Mule 4 の例

<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>

## [](#関連情報)関連情報

- [対象変数](https://docs.mulesoft.com/jp/mule-runtime/4.8/target-variables)