Вход:
{
"files-list": [
{
"fileName": "esp/outbound/poacks/b2bi/input/ESP-Load-DB1902717-COMPLETE-20200415155427_115768.xml",
"fileSize": 2001,
"lastModified": "2020-04-16T12:26:37"
},
{
"fileName": "esp/outbound/poacks/b2bi/input/ESP-Load-DB1902718-CANCELLED-20200415155427_115768.xml",
"fileSize": 2001,
"lastModified": "2020-04-17T12:26:38"
},
{
"fileName": "esp/outbound/poacks/b2bi/input/ESP-Load-DB1902718-COMPLETE-20200415155427_115768.xml",
"fileSize": 2001,
"lastModified": "2020-04-16T12:26:35"
},
{
"fileName": "esp/outbound/poacks/b2bi/input/ESP-Load-DB1902719-COMPLETE-20200415155427_115768.xml",
"fileSize": 2001,
"lastModified": "2020-04-18T12:26:39"
},
{
"fileName": "esp/outbound/poacks/b2bi/input/ESP-Load-DB1902719-CANCELLED-20200415155427_115768.xml",
"fileSize": 2001,
"lastModified": "2020-04-17T12:26:39"
},
{
"fileName": "esp/outbound/poacks/b2bi/input/ESP-Load-DB1902719-COMPLETE-20200415155427_115768.xml",
"fileSize": 2001,
"lastModified": "2020-04-16T12:26:39"
}
]
}
Выход:
{
"files-list": [
{
"fileName": "esp/outbound/poacks/b2bi/input/ESP-Load-DB1902717-COMPLETE-20200415155427_115768.xml",
"fileSize": 2001,
"lastModified": "2020-04-16T12:26:37"
},
{
"fileName": "esp/outbound/poacks/b2bi/input/ESP-Load-DB1902719-COMPLETE-20200415155427_115768.xml",
"fileSize": 2001,
"lastModified": "2020-04-18T12:26:39"
}
]
}
Я создал несколько dw, но не смог получить точный результат. Пожалуйста, найдите ниже, что я попробовал с моей стороны:
%dw 2.0
output application/json
fun splitByLoadNumber(aString) = ((aString splitBy "/")[5] splitBy "-")[2]
fun isCancelled(item) = item contains( "CANCELLED" )
var orderedData={ "files-list": payload."files-list" orderBy ((record,index) -> (record.lastModified)) groupBy splitByLoadNumber($.fileName) pluck $ map $[-1] }
---
"files-list":orderedData."files-list"