Example
Group orderBy Pluk
[
{
"emplId": 12,
"stampDate": "2021-03-29 07:57:35.863",
"transport": "vers",
"stamp" :"IN"
},
{
"emplId": 12,
"stampDate": "2021-03-29 06:00:35.863",
"transport": "",
"stamp" :""
},
{
"emplId": 14,
"stampDate": "2021-03-30 05:00:35.863",
"transport": "",
"stamp" :""
},
{
"emplId": 14,
"stampDate": "2021-03-30 11:00:35.863",
"transport": "du",
"stamp" :""
}
]
payload orderBy $.stampDate groupBy $.emplId pluck $
[
[
{
"emplId": 12,
"stampDate": "2021-03-29 06:00:35.863",
"transport": "",
"stamp": ""
},
{
"emplId": 12,
"stampDate": "2021-03-29 07:57:35.863",
"transport": "vers",
"stamp": "IN"
}
],
[
{
"emplId": 14,
"stampDate": "2021-03-30 05:00:35.863",
"transport": "",
"stamp": ""
},
{
"emplId": 14,
"stampDate": "2021-03-30 11:00:35.863",
"transport": "du",
"stamp": ""
}
]
]
Reduce
fun reduceToMessage(obj:Array):Any = obj reduce ((item, total = "") -> total ++ item.scan_time )
Filter
Stucture
[
[
{"imported_abacus_date" = null}
]
]
payload map ($ filter ((item, index) -> (item.imported_abacus_date != null)))
GroupBy and Pluck
var groupByEmpl = payload groupBy $.EmployeeId pluck $
fun minuteToDecimal(minutes:Number):String =
(minutes /60) as String {format: "#.##"}
output application/json
---
groupByEmpl map {
"EmployeeId" : $[0].EmployeeId,
"ReimbursementAmount":sum($.ReimbursementAmount),
"Distance":sum($.Distance ),
"TunnelStepCount":sum($.TunnelStepCount),
"Duration_H_Decimal":minuteToDecimal(sum($.Duration)),
}```