First step is upgrde 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.
IBM i Software Developer, Digital Dad, AS400 Anarchist, RPG Modernizer, Alpha Nerd and Passionate Eater of Cheese and Biscuits. Nick Litten Dot Com is a mixture of blog posts that can be sometimes serious, frequently playful and probably down-right pointless all in the space of a day. Enjoy your stay, feel free to comment and in the words of the most interesting man in the world: Stay thirsty my friend.
Updating Numeric DTAARA in RPGLE
Going the (Levenshtein) Distance in RPG Free
Install LANSA AXES – Automatic Web Interface for IBM i (AS/400) 5250 Applications
RPG Evolution, Modernization and Refactoring – Step 5 of 4 – RPG FREE FORMAT 2017
Dirty RPG programmers need to write Clean RPG Code
IBM i create JOBLOG from RPGLE /FREE – a QMHSNDPM code example
Write to joblog messages from RPGLE /FREE – easy code example using Qp0zLprintf
RPG example: Talk to a Webservice and store reply XML or JSON in IFS
Write to joblog messages from RPGLE – easy code example