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"}
>