CHKLVLCHK - Check Level Checks
CHKLVLCHK is a routine I wrote around 1994 to save a lot of time and headaches. We had been working on changes to some of our major files which required the recompilation of a hundred programs or so, and could impact a good many more. The format level identifier on the affected physicals had changed, along with most of their dependant logicals. Our cross reference tool had identified what needed changing, but we needed to be sure before going live. I decided to automate the checking process by merging the output from a DSPPGMREF over a library with a DSPFD for each referenced object. If the level identifier at program compilation time (from DSPPGMREF) matched that of the first occurance of the referenced file (from DSPFD) it was okay. If there was a format level mismatch, or a referenced object couldn't be found, then that was an error we wanted to know about.
There's help text with the command, but here's a brief summary. You can check a single program, a generic group, or *ALL in a specific library. You can check against a list of referenced objects (or starting characters of objects) or *ALL. The routine can be run with the current library list, the current user's *JOBD library list or a specific *JOBD library list (ie. point it at a specific environment setup). The report can list all programs covered or just those with errors. If a program does have errors then the date created, date last used and usage count will be listed to help identify redundant programs. The dates are in DD/MM/YY format - just alter RPG member CHKLVLCHKR to suit if you want something different.
It's been a vital part of our implementation system since then, and has saved a lot of frustration by spotting the dreaded CPF4131 before it happens. Unlike some of my other tools it's one I haven't had any difficulty persuading my colleagues to use
There's no need to have already installed DBG/400, but I think you should anyway
are the same as for DBG/400 - just run MAKECHKLVL instead of MAKEDBG this time. By default it will install into library DBG400, but if you want to put it somewhere else it's fairly easy, just swap the library references in these three source members:
- Create DBGSRCFILE in your selected library rather than DBG400 and upload the two source members to it
- CLP member SRCPARSER - amend the VALUE of the DCL &SRCLIB
- CLP member CHKLVLCHK - amend the VALUE of the DCL &PRDLIB
- CLP member MAKECHKLVL - amend the VALUE of the DCL &SRCLIB and &LIBRARY You want to compile & run
MAKECHKLVL to build the utility.