Flex Gateway新着情報
Governance新着情報
Monitoring API Manager
このバージョンの Mule は、拡張サポートが終了する 2023 年 5 月 2 日にその すべてのサポートが終了しました。 このバージョンの Mule を使用する CloudHub には新しいアプリケーションをデプロイできなくなります。許可されるのはアプリケーションへのインプレース更新のみになります。 標準サポートが適用されている最新バージョンの Mule 4 にアップグレードすることをお勧めします。これにより、最新の修正とセキュリティ機能強化を備えたアプリケーションが実行されます。 |
Mule 4 では filters
は使用されなくなりました。Mule 3 で提供された検索条件の機能は、検証モジュールを使用して実行できます。
Mule 3 では、メッセージが絞り込まれたら、その時点で通知せずにフローが終了しました。
検証モジュールでは条件が一致しないとフローが失敗し、移行されたフローに VALIDATION
エラーを処理させます。
応答を送信するための取得元があるフローが VALIDATION
エラーを処理する必要があり、これを行うには、検証エラーのエラーハンドラーで変数を設定します。次に例を示します。
<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
の取得元は次のようになります。
<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 モジュールかスクリプティングモジュールを使用し、カスタムコードで絞り込みを実行します。