IBM AS/400 Frozen Dessert Maker User Manual


 
Resolving Conversion Problems
Merging Problems
Because of differences between the RPG III and RPG IV languages, the Conver-
sion Aid must reorder certain source statements. An example of this reordering is
shown in “Example of Source Conversion” on page 390 for the RPG III source
member TEST1. If you compare the placement of the data structure DS1 in
Figure 194 on page 391 and in Figure 195 on page 392, you can see that the
data structure DS1 was moved so that it precedes the record format FORMAT1.
Now suppose that the RPG III member TEST1 was split into two members, TEST2
and COPYDS1, where the data structure DS1 and the named constant CONST1
are in a copy member COPYDS1. This copy member is included in source TEST2.
Figure 201 and Figure 202 show the source for TEST2 and COPYDS1 respec-
tively.
H TSTPGM
FFILE1 IF E DISK COMM1
FQSYSPRT O F 132 OF LPRINTER
LQSYSPRT 60FL 56OL
E ARR1 3 3 1 COMM2
E ARR2 3 3 1
IFORMAT1
I OLDNAME NAME
/COPY COPYDS1
C ARR1,3 DSPLY
C READ FORMAT1 01
C NAME DSPLY
C SETON LR
C EXCPTOUTPUT
OQSYSPRT E 01 OUTPUT
O ARR2,3 10
**
123
**
456
Figure 201. RPG III Source for TEST2
I* DATA STRUCTURE COMMENT
IDS1 DS
I 1 3 FIELD1
I* NAMED CONSTANT COMMENT
I 'XYZ' C CONST1 COMM3
I 4 6 ARR1
Figure 202. RPG III Source for COPYDS1
In this situation, the Conversion Aid would convert both member TEST2 and the
copy member COPYDS1 correctly. However, when the copy member is included at
compile time, it will be inserted below FORMAT1, because this is where the /COPY
directive is located. As a result, all source lines in the copy member COPYDS1 will
get a "source record is out of sequence" error. In RPG IV, definition specifications
must precede input specifications.
Note that the Conversion Aid could not move the /COPY directive above FORMAT1
because the contents of /COPY member are unknown.
Appendix B. Using the RPG III to RPG IV Conversion Aid 399