RPG Evolution, Modernization and Refactoring – RPG Three becomes Four

MODERNIZE RPG SOURCE CODE - IBM Command to upgrade RPG3 to RPG4

When you are considering how to modernize RPG from an old language syntax to a newer version the first step is upgrade the old RPG3 (old style 80 character RPG) to the newer RPGLE format (112 character style).

IBM gives us a command to do this and after running CVTRPGSRC (Convert RPG Source) on the old source a new member is created in QRPGLESRC:

* program to fix SLP06 records
H DEBUG
FEFP01L01 IF E K DISK INFSR(*PSSR)
FACSUMMAR UF E K DISK INFSR(*PSSR)
D LDA E DS EXTNAME(LDA)
D PSTAT ESDS EXTNAME(PSDS)
C *DTAARA DEFINE *LDA LDA
C IN LDA
C K01 KLIST
C KFLD CUSN06
C L#CONO SETLL ACSUMMAR
C L#CONO READE ACSUMMAR 06
C DOW *IN06 = *OFF
C K01 CHAIN EFP01L01 02
C IF *IN02 = *OFF
C EVAL BODV06 = AMOUNT
C ELSE
C EVAL BODV06 = 0
C ENDIF
C UPDATE SLR06
C L#CONO READE ACSUMMAR 06
C ENDDO
C EVAL *INLR = *ON
C OUT LDA
* standard error handling routine.
/Copy qgpl/qrpglesrc,pssr

As you can see the code if more or less the same, with the exception of few elements to make it more readable.

It's still using indicators, but if/do loops are now completed with relevant ENDIF/DO and EVAL statement have appeared.

Note - make sure any /COPY entries are also upgraded - otherwise trying to suck in RPG3 code from copybooks will upset the compiler

So far it's all been automatic, the CVTRPGSRC command is a wonderful thing.

The next step is to tidy up the code further so it morphs from a hybrid RPG3-4 to full-blooded RPG4

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}
>