Flex Gateway新着情報
Governance新着情報
Monitoring API Manager
DataWeave 2.1 は Mule 4.1 と互換性があります。 Mule 4.1 の標準サポートは 2020 年 11 月 2 日に終了しました。このバージョンの Mule は、拡張サポートが終了する 2022 年 11 月 2 日にそのすべてのサポートが終了します。 このバージョンの Mule を使用する CloudHub には新しいアプリケーションをデプロイできなくなります。許可されるのはアプリケーションへのインプレース更新のみになります。 標準サポートが適用されている最新バージョンの Mule 4 にアップグレードすることをお勧めします。これにより、最新の修正とセキュリティ機能強化を備えたアプリケーションが実行されます。 |
この DataWeave の例では、2 つの引数 (関数と関数を適用する要素) を取得するベース関数をヘッダーで定義します。ベース関数は、受信した関数を取得した要素のキーとその子要素の各キーに再帰的に適用します。この場合、送信された関数はすべてのキーを小文字に設定します。
この例では、以下を使用します。
再帰的に適用されるカスタム関数。たとえば、最初に取得する要素の子ごとに自分自身をコールします。
要素の各子を並び替える mapObject
。
入力のすべてのキーを小文字にする文字列ライブラリの lower
。
渡された要素が Object
型である (子がいる) かどうかをチェックする is
。
条件を満たしている場合に関数コール自体のみを設定し、条件を満たしていない場合にその分岐の再帰的なループを終了する if
および else
。
%dw 2.0
import * from dw::core::Strings
output application/xml
fun applyToKeys(element, func) =
if (element is Object)
element mapObject (value, key) -> {
(func(key)) : applyToKeys( value, func)
}
else element
---
applyToKeys(payload, (key) -> lower(key))
<CATALOG>
<CD>
<TITLE>Empire Burlesque</TITLE>
<ARTIST>Bob Dylan</ARTIST>
<COUNTRY>USA</COUNTRY>
<COMPANY>Columbia</COMPANY>
<PRICE>10.90</PRICE>
<YEAR>1985</YEAR>
</CD>
<CD>
<TITLE>Hide your heart</TITLE>
<ARTIST>Bonnie Tyler</ARTIST>
<COUNTRY>UK</COUNTRY>
<COMPANY>CBS Records</COMPANY>
<PRICE>9.90</PRICE>
<YEAR>1988</YEAR>
</CD>
</CATALOG>
<?xml version='1.0' encoding='US-ASCII'?>
<catalog>
<cd>
<title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
<country>USA</country>
<company>Columbia</company>
<price>10.90</price>
<year>1985</year>
</cd>
<cd>
<title>Hide your heart</title>
<artist>Bonnie Tyler</artist>
<country>UK</country>
<company>CBS Records</company>
<price>9.90</price>
<year>1988</year>
</cd>
</catalog>