Flex Gateway新着情報
Governance新着情報
Monitoring API Managerこの DataWeave 例では、mapObject
関数を使用してオブジェクトの配列を反復処理し、指定された条件の値と一致する新しいオブジェクトを追加します。
開始する前に、DataWeave バージョン 2 (%dw 2.0
) は Mule 4 アプリケーションを対象とすることに注意してください。Mule 3 アプリケーションの場合、Mule 3.9 ドキュメントセットの DataWeave バージョン 1 (%dw 1.0
) の例を参照してください。他の Mule バージョンの場合は、目次の Mule Runtime バージョンセレクターを使用できます。
入力はシートが含まれる JSON オブジェクトで構成されています。すべてのシートの値 (たとえば、(sheet)1
、(sheet)2
) はオブジェクトの配列です。DataWeave スクリプトでは、シート番号が append
オブジェクトの Id
キーの値に等しい場合、別のオブジェクト append
を最後の項目として一致するシート配列に追加します。
例では、fun extractNumber
関数を使用してシートページ名 pageName
からシート番号を抽出します。
続いて、DataWeave 関数の mapObject
はルートのすべてのシートで反復され、extractNumber
が append.Id
値に一致する場合、この関数によって append
オブジェクトが一致するシートオブジェクトに追加されます。
%dw 2.0
output application/json
var append =
{
"Id": "2",
"Access": "4444",
"Subteam": "1",
}
fun extractNumber(pageName: Key) =
(pageName as String match /\(sheet\)([0-9]+)/)[1]
---
payload mapObject ((value, key, index) -> do {
if(extractNumber(key) == append.Id)
{(key): value << append}
else
{(key): value}
})
{
"(sheet)1": [
{
"Id": 1.0,
"Team": "Mule",
"timestamp": "2019-09-26T16:37:54",
"Access": 12431
}
],
"(sheet)2": [
{
"Id": 2.0,
"Team": "Max",
"timestamp": "2019-09-26T16:37:54",
"Access": 81243
},
{
"Id": 2.0,
"Team": "Max Mule",
"timestamp": "2019-09-26T18:00:54",
"Access": 67676
}
]
}
{
"(sheet)1": [
{
"Id": 1.0,
"Team": "Mule",
"timestamp": "2019-09-26T16:37:54",
"Access": 12431
}
],
"(sheet)2": [
{
"Id": 2.0,
"Team": "Max",
"timestamp": "2019-09-26T16:37:54",
"Access": 81243
},
{
"Id": 2.0,
"Team": "Max Mule",
"timestamp": "2019-09-26T18:00:54",
"Access": 67676
},
{
"Id": "2",
"Access": "4444",
"Subteam": "1"
}
]
}