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 の例では、コレクションのコレクションが含まれる入力に対処します。最初のペイロードインデックス payload[0]
は本ごとの価格をリストし、2 番目のペイロードインデックス payload[1]
は本ごとの著者をリストします。各本は一意の bookId
キーで識別できます。この変換では、キーを照合して両方のペイロード配列要素を 1 つにマージします。1 つの本に複数の著者がいる場合もあります。
これは、配列で構成される 1 つのペイロードを入力として設定することとは異なります。ここでは、ペイロードは配列の配列になります。 |
次の関数を使用します。
map
。最初のペイロード要素 (payload[0]
) の要素を調べます。2 番目の map
関数は、要素ごとに検索条件に一致する 2 番目のペイロード (payload[1]
) の要素を調べます。
using
。メイン map
関数のスコープ内の短い別名を定義します。
filter
。2 番目の map
関数のスコープを、現在最初の map
関数で処理されているオブジェクトと同じ bookId
を共有するオブジェクトに制限します。このようにして、それぞれの関連する著者のみが出力にリストされます。
%dw 2.0
output application/json
---
payload[0] map (bookListing) -> using (id = bookListing.bookId) {
bookId: id,
title: bookListing.title,
price: bookListing.price as Number,
(payload[1] filter ($.*bookId contains id) map (bookAuthor) -> {
author:bookAuthor.author
})
}
[
{ "bookId":"101",
"title":"world history",
"price":"19.99"
},
{
"bookId":"202",
"title":"the great outdoors",
"price":"15.99"
}
]
[
{
"bookId":"101",
"author":"john doe"
},
{
"bookId":"202",
"author":"jane doe"
}
]
[
{
"bookId": "101",
"title": "world history",
"year": "2017",
"isbn": "11111",
"price": "19.99",
"author": "john doe"
},
{
"bookId": "202",
"title": "the great outdoors",
"year": "2016",
"isbn": "22222",
"price": "15.99",
"author": "jane doe"
}
]