11. Internal queues as input and output

Example 11.1:

)action out='myqueue'

9

25

121

2

)endaction

)action in='myqueue'

'Square of' word.1 'is' word.1**2

)endaction

 

Output will be the following lines in standard output: <user>.RXS.DATA:

Square of 9 is 81

Square of 25 is 625

Square of 121 is 14641

Square of 2 is 4

Notice:

The first action block in example 9.1 writes to the queue 'myqueue'. The action-block uses no input, accordingly it is executed only once.

The second action block uses the queue 'myqueue' as input, accordingly the block is executed once for each element in 'myqueue'. General order 'out' is not assigned any value in the second action block, accordingly this block writes to standard output: the dataset <user>.RXS.DATA.

Example 11.2:

)action out='compressed_lyrics'

"What shall we do with the drunken sailor"

"Put him in the longboat till he's sober"

"Pull out the plug and wet him all over"

"Put him in the scuppers with a hose-pipe on him"

"Heave him by the leg in a running bow-lin"     

)endaction

)action in='compressed_lyrics'

)& i=0

i = i + 1

i"."  

do 3

unit.1

end

"Early in the morning"

" "

)endaction

Line 9 in this example shows that the )action line itself may contain any RXS coding. This coding will be executed once as execution hits the action block. Therefore the )action line is well suited for initialization of counters. In this example the counter i is initialized.

Output will be like example 1.1, here adding three more verses to the lyrics.