---
schema_version: "1"
id: ae6e87a8936a2fc0a452bd7afce849fb5c69f99b3df22278c56ad0e6d737b841
title: 検索条件の移行
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/mule-runtime/4.8/migration-filters.md
canonical_url: https://docs.mulesoft.com/jp/mule-runtime/4.8/migration-filters
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 600fd5e2b1d8d12b614f51f47cbd835ed196c4e5c625b0e6905772fca6c194f3
description: MuleSoft Documentation Site
release: "4.8"
latest: false
---
# 検索条件の移行

Mule 4 では ​`filters`​ は使用されなくなりました。Mule 3 で提供された検索条件の機能は、​[Validation Module](https://docs.mulesoft.com/jp/validation-connector/latest/)​ を使用して実行できます。

## [](#検索条件の適用)検索条件の適用

Mule 3 では、メッセージが絞り込まれたら、その時点で通知せずにフローが終了しました。

Validation Module では条件が一致しないとフローが失敗し、移行されたフローに ​`VALIDATION`​ エラーを処理させます。

応答を送信するための取得元があるフローが ​`VALIDATION`​ エラーを処理する必要があり、これを行うには、検証エラーのエラーハンドラーで変数を設定します。次に例を示します。

Mule 4 の例

```xml
<flow name="flow">
    ...
    <validation:is-true expression="#[...]"/>
    ...
    <error-handler>
        <on-error-propagate type="MULE:VALIDATION">
            <set-variable variableName="filtered" value="true"/>
        </on-error-propagate>
    </error-handler>
</flow>
```

次に、取得元のエラー応答ビルダーで set variable を照会し、クライアントに適切な応答を送信できます。たとえば、​`http:listener`​ の取得元は次のようになります。

Mule 4 の例

```xml
<flow name="flow">
    <http:listener config-ref="listenerConfig">
        <http:error-response statusCode="#[if (vars.filtered) 400 else 500]"
                             reasonPhrase="#[if (vars.filtered) 'Bad Request' else 'Internal Server Error']">
            <http:body>#[error.description]</http:body>
        </http:error-response>
    </http:listener>
    ...

    <validation:is-true expression="#[...]"/>
    <error-handler>
        <on-error-propagate type="MULE:VALIDATION">
            <set-variable variableName="filtered" value="true"/>
        </on-error-propagate>
    </error-handler>
</flow>
```

このケースでは、イベントが絞り込まれる場合は 400 (Bad Request) コードが返されます。

## [](#カスタム検索条件または複雑な検索条件の移行)カスタム検索条件または複雑な検索条件の移行

ほとんどの場合、式言語を使用するためにカスタムまたは複雑なネストされた検索条件を移行できます。同じ検索条件を数か所で使用する必要がある場合は、DataWeave スクリプトを外部ファイルに保存することができます。

DataWeave がサポートしない方法でデータを絞り込む場合、Java Module か Scripting Module を使用し、カスタムコードで絞り込みを実行します。

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

[Validation Module](https://docs.mulesoft.com/jp/validation-connector/latest/)

[DataWeave 言語](https://docs.mulesoft.com/jp/mule-runtime/4.8/dataweave)

[Scripting Module](https://docs.mulesoft.com/jp/scripting-module/latest/)

[Java Module](https://docs.mulesoft.com/jp/java-module/latest/)