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 UPGRPGSRC (Upgrade 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 apeared.
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