Я немного новичок в DataWeave. Я пытаюсь получить последние записи о выводах для пользователя, а также сгруппировать их по типу в массиве. Это данные, с которыми мне нужно работать:
"users": [
{
"employeeId": "123456",
"lastName": "smith",
"firstName": "joe ",
"deductions": [
{
"deductionType": "ABC",
"Amt": 1000,
"StartDate": "2001-01-02T00:00:00"
},
{
"deductionType": "ABC",
"Amt": 1000,
"StartDate": "2019-01-02T00:00:00"
},
{
"deductionType": "ABC",
"Amt": 1000,
"StartDate": "2016-01-02T00:00:00"
},
{
"deductionType": "DCA",
"Amt": 4000,
"StartDate": "2019-11-02T00:00:00",
}
]
}
Я попытался использовать аналогичное решение, размещенное на странице: Dataweave 2.0 maxBy и фильтр Но это, похоже, не работает, поскольку я получаю нулевую полезную нагрузку.
Конечный результат должен выглядеть так:
"users": [
{
"employeeId": "123456",
"lastName": "smith",
"firstName": "joe ",
"deductions": [
{
"deductionType": "ABC",
"Amt": 1000,
"StartDate": "2019-01-02T00:00:00"
},
{
"deductionType": "DCA",
"Amt": 4000,
"StartDate": "2019-11-02T00:00:00",
}
]
Моя текущая попытка решения:
payload.users map {($),
deductions: (($.deductions groupBy $.deductionType) mapObject (value, key) ->
{(key) : (value maxBy $.benefitStartDate)}) pluck (value) -> value
}
Но это тоже не работает.