Flex Gateway新着情報
Governance新着情報
Monitoring API Manager
DataWeave 2.2 は Mule 4.2 と互換性があり、Mule 4.2 にバンドルされています。 このバージョンの Mule は、拡張サポートが終了する 2023 年 5 月 2 日にその すべてのサポートが終了しました。 このバージョンの Mule を使用する CloudHub には新しいアプリケーションをデプロイできなくなります。許可されるのはアプリケーションへのインプレース更新のみになります。 標準サポートが適用されている最新バージョンの Mule 4 にアップグレードすることをお勧めします。これにより、最新の修正とセキュリティ機能強化を備えたアプリケーションが実行されます。 |
この DataWeave の例では、3 つの異なる入力 JSON ファイル (ペイロード、変数、属性) を取得します。これらのすべては、同じ Mule イベントの意一部です。ペイロードには本のオブジェクトの配列が含まれ、変数には一連の通貨換算レートがあり、属性ではクエリとして使用される年を指定します。
開始する前に、DataWeave バージョン 2 (%dw 2.0
) は Mule 4 アプリケーションを対象とすることに注意してください。Mule 3 アプリケーションの場合、Mule 3.9 ドキュメントセットの DataWeave 1.0 (%dw 1.0
) の例を参照してください。他の Mule バージョンの場合は、目次の Mule Runtime バージョンセレクターを使用できます。
この例では、以下を使用します。
入力属性で指定した日付よりも古い本を除外する filter
。
入力配列の各本を調べる map
。その後に変数の通貨を調べてそれぞれの本の価格を計算する別の map
関数。複数ある場合に本のすべての著者をリストする 3 番目の map
関数。
出力の XML 属性を定義する @
。
%dw 2.0
output application/xml
---
books: {
(payload filter ($.properties.year > attributes.publishedAfter) map (item) -> {
book @(year: item.properties.year): {
(vars.exchangeRate.USD map {
price @(currency: $.currency): $.ratio * item.price
}),
title: item.properties.title,
authors: { (item.properties.author map {
author: $
}) }
}
} )
}
[
{
"type": "book",
"price": 30,
"properties": {
"title": "Everyday Italian",
"author": [
"Giada De Laurentiis"
],
"year": 2005
}
},
{
"type": "book",
"price": 29.99,
"properties": {
"title": "Harry Potter",
"author": [
"J K. Rowling"
],
"year": 2005
}
},
{
"type": "book",
"price": 41.12,
"properties": {
"title": "Mule in Action",
"author": [
"David Dossot",
"John D'Emic"
],
"year": 2009
}
},
{
"type": "book",
"price": 49.99,
"properties": {
"title": "XQuery Kick Start",
"author": [
"James McGovern",
"Per Bothner",
"Kurt Cagle",
"James Linn",
"Kurt Cagle",
"Vaidyanathan Nagarajan"
],
"year": 2003
}
},
{
"type": "book",
"price": 39.95,
"properties": {
"title": "Learning XML",
"author": [
"Erik T. Ray"
],
"year": 2003
}
}
]
{
"publishedAfter": 2004
}
exchangeRate
{
"USD": [
{"currency": "EUR", "ratio":0.92},
{"currency": "ARS", "ratio":8.76},
{"currency": "GBP", "ratio":0.66}
]
}
<?xml version='1.0' encoding='US-ASCII'?>
<books>
<book year="2005">
<price currency="EUR">27.60</price>
<price currency="ARS">262.80</price>
<price currency="GBP">19.80</price>
<title>Everyday Italian</title>
<authors>
<author>Giada De Laurentiis</author>
</authors>
</book>
<book year="2005">
<price currency="EUR">27.5908</price>
<price currency="ARS">262.7124</price>
<price currency="GBP">19.7934</price>
<title>Harry Potter</title>
<authors>
<author>J K. Rowling</author>
</authors>
</book>
<book year="2009">
<price currency="EUR">37.8304</price>
<price currency="ARS">360.2112</price>
<price currency="GBP">27.1392</price>
<title>Mule in Action</title>
<authors>
<author>David Dossot</author>
<author>John D'Emic</author>
</authors>
</book>
</books>