Example 26.1
)text out='myqueue'
9
25
121
2
)endtext
)action in='myqueue'
)& func='sorted'
'square of' word.1 'is' word.1**2
)endaction
Output is:
square of 2 is 4
square of 9 is 81
square of 25 is 625
square of 121 is 14641
func='sorted' performs a sorting of the input before it is presented to the action block.
Input records are sorted ascending on the value of unit.1.
If all values of unit.1 are numeric, a numeric sort is performed; otherwise an alphanumeric sort is performed:
Example 26.2
Alphanumeric sort:
)text out='myqueue'
9
25
UPS
121
2
)endtext
)action in='myqueue'
)& func='sorted'
unit.1
)endaction
Output will be like this (Sorting is primarily on byte 1, that is 121 is ranked before 2 etc.):
UPS
121
2
25
9
If unit.2 is present in input, it will also participate in the sort. In this case unit.1 is the sorting key of the item and unit.2 is the value of the item:
Example 26.3
)action out='myqueue'
9, 'Road Runner'
25, 'Winnie the Pooh'
121, 'Cinderella'
2, 'The Big Bad Wolf'
)endaction
)action in='myqueue'
)& func='sorted'
unit.2
)endaction
Output is:
The Big Bad Wolf
Road Runner
Winnie the Pooh
Cinderella
If length of any input (unit.1) record exceeds 256, then consider putting input in unit.2 and create a sort criteria in unit.1.
If length of any input (unit.1) record exceeds 256 and is less than 4000, and if unit.2 is not used, the sorting schema changes to a alphanumeric sort of unit.1.
If
· the length of any unit.1 in input is larger than 4000
· the length of any unit.1 is larger than 256 and unit.2 is used
then the sort in RXS is terminated in error
func='sorted_desc' works like func='sorted', except that a descending sort on unit.1 is performed.