Return to the RPG Tips
Example of using procedures/sub-procedures to pass multiple arrays
example of using procedures/sub-procedures....specifically passing multiple arrays back and forth between calling RPGLE program and called procedure
From: Joel Fritz
There's no trick. Just define the arrays as parameters on the d specs of
the procedure prototype and procedure interface being sure to include the
dim keyword so the procedure knows it's an array. Otherwise it's just the
same as passsing any other parameter. You probably don't want to pass them
by value. If you don't need to change any of the values, define them using
the const keyword. Here's a prototype and procedure that takes an array of
100 cells three characters long:
[report a broken link by clicking here]
D* Prototype
D takesanarray pr
D arrayparm 3 dim(100)
******Procedure
P takesanarray b
D takesanarray pi
D arrayparm 3 dim(100)
D
D index 5u 0
D
C do 100 index
C eval arrayparm(index) = 'IBM'
C enddo
C return
P takesanarray e
You'd call it with: callp takesanarray(yourarray)
where yourarray is an array you're using in the main program that is defined the same as the procedure parameter.