Expression Rule Body: a!localVariables( local!formatDetails: {{format: "#.#", columnorder: 9, name: "ABC"}, {format: "#.##", columnorder: 11, name: "EFG"}, {format: "#.###", columnorder: 9, name: "HIJ"}, {format: "#.#", columnorder: 11, name: "KLM"}}, local!data: {a!map(ABC: "6.78998", EFG: "15.44443", HIJ: "470.8888", KLM: "9.8989984"), a!map(ABC: "8.44544", EFG: "15.4323", HIJ: "470.656565", KLM: "9.2342"), a!map(ABC: "7.232323", EFG: "15.4234234", HIJ: "470.55445", KLM: "9.234234"), a!map(ABC: "5.64545", EFG: "15.4234234", HIJ: "470.2342", KLM: "9.63242"), a!map(ABC: "453.345345", EFG: "15.4234234", HIJ: "470.665434", KLM: "9.54343")}, a!forEach( items: local!formatDetails, expression: a!localVariables( local!formt: fv!item.format, local!key: fv!item.name, a!update( data: local!data, index: local!key, value: todecimal(text( index(local!data, local!key, null), if( a!isNullOrEmpty(local!formt), "", local!formt ) ) )) ) ),)
This outputs
{{a!map(ABC: 6.7, EFG: "15.44443", HIJ: "470.8888", KLM: "9.8989984"), a!map(ABC: 8.4, EFG: "15.4323", HIJ: "470.656565", KLM: "9.2342"), a!map(ABC: 7.2, EFG: "15.4234234", HIJ: "470.55445", KLM: "9.234234"), a!map(ABC: 5.6, EFG: "15.4234234", HIJ: "470.2342", KLM: "9.63242"), a!map(ABC: 453.3, EFG: "15.4234234", HIJ: "470.665434", KLM: "9.54343")}, {a!map(ABC: "6.78998", EFG: 15.44, HIJ: "470.8888", KLM: "9.8989984"), a!map(ABC: "8.44544", EFG: 15.43, HIJ: "470.656565", KLM: "9.2342"), a!map(ABC: "7.232323", EFG: 15.42, HIJ: "470.55445", KLM: "9.234234"), a!map(ABC: "5.64545", EFG: 15.42, HIJ: "470.2342", KLM: "9.63242"), a!map(ABC: "453.345345", EFG: 15.42, HIJ: "470.665434", KLM: "9.54343")}, {a!map(ABC: "6.78998", EFG: "15.44443", HIJ: 470.888, KLM: "9.8989984"), a!map(ABC: "8.44544", EFG: "15.4323", HIJ: 470.656, KLM: "9.2342"), a!map(ABC: "7.232323", EFG: "15.4234234", HIJ: 470.554, KLM: "9.234234"), a!map(ABC: "5.64545", EFG: "15.4234234", HIJ: 470.234, KLM: "9.63242"), a!map(ABC: "453.345345", EFG: "15.4234234", HIJ: 470.665, KLM: "9.54343")}, {a!map(ABC: "6.78998", EFG: "15.44443", HIJ: "470.8888", KLM: 9.8), a!map(ABC: "8.44544", EFG: "15.4323", HIJ: "470.656565", KLM: 9.2), a!map(ABC: "7.232323", EFG: "15.4234234", HIJ: "470.55445", KLM: 9.2), a!map(ABC: "5.64545", EFG: "15.4234234", HIJ: "470.2342", KLM: 9.6), a!map(ABC: "453.345345", EFG: "15.4234234", HIJ: "470.665434", KLM: 9.5)}}
But i need output
{{a!map(ABC: 6.7, EFG: 15.44, HIJ: 470.888, KLM: 9.8), a!map(ABC: 8.4, EFG: 15.43, HIJ: 470.656, KLM: 9.2), a!map(ABC: 7.2, EFG: 15.42, HIJ: 470.554, KLM: 9.2), a!map(ABC: 5.6, EFG: 15.42, HIJ: 470.234, KLM: 9.6), a!map(ABC: 453.3, EFG: 15.42, HIJ: 470.665, KLM: 9.5)}}
Discussion posts and replies are publicly visible
The problem was formatting columns separately, creating multiple partial results; fixing it by applying all formats sequentially per row created one fully formatted dataset as needed.
a!localVariables( local!formatDetails: { {format: "#.#", name: "ABC"}, {format: "#.##", name: "EFG"}, {format: "#.###", name: "HIJ"}, {format: "#.#", name: "KLM"} }, local!data: { a!map(ABC: "6.78998", EFG: "15.44443", HIJ: "470.8888", KLM: "9.8989984"), a!map(ABC: "8.44544", EFG: "15.4323", HIJ: "470.656565", KLM: "9.2342"), a!map(ABC: "7.232323", EFG: "15.4234234", HIJ: "470.55445", KLM: "9.234234"), a!map(ABC: "5.64545", EFG: "15.4234234", HIJ: "470.2342", KLM: "9.63242"), a!map(ABC: "453.345345", EFG: "15.4234234", HIJ: "470.665434", KLM: "9.54343") }, a!forEach( items: local!data, expression: a!localVariables( local!row: fv!item, local!formattedRow: a!forEach( items: local!formatDetails, expression: a!update( data: local!row, index: fv!item.name, value: todecimal( text( index(local!row, fv!item.name, null), fv!item.format ) ) ) ), /* Return the last updated version, where all columns are formatted */ local!formattedRow[count(local!formattedRow)] ) ) )