Maintaining a poor documented system (12.000 objects, 20 years of maintenance and developments, 40.000 references between objects). We needed a tool to retrieve programs using files (propagation analysis, debugging, ...). Such tools are available but expensive and complex. Command DSPPGMREF can output program references to a file. A CLP PGM (DOC01) produces output file (DOCPGM) for one library. The output file is copied to a cumul file (DOCPGML2). CLP PGM DOC01 is called by DOC02, for each library we want to document. Master program DOC02 is scheduled every sunday.
The output file (DOCPGML2) is indexed on file name field (WHFNAM) and viewed whith SQL. A usefull field is WHFUSG which codes the usage of the file: add, update, delete, read, unknown ...
/* DOC01 */ PGM PARM(&PGM &LIB) DCL VAR(&PGM)TYPE(*CHAR)len(10) DCL VAR(&LIB)TYPE(*CHAR)len(10) CLRPFM LIBDOC/DOCPPGM DSPPGMREF PGM(&LIB/&PGM) OUTPUT(*NONE)+ OUTFILE(LIBDOC/DOCPGM) MONMSG CPF3033 CPYF LIBDOC/DOCPGM LIBDOC/DOCPGML2 + MBROPT(*ADD) ENDPGM /* DOC02 */ PGM CLRPFM LIBDOC/DOCPGML2 CALL DOC01 PARM('*ALL ' 'mylib01 ') ... CALL DOC01 PARM('*ALL ' 'mylib0n ') ENDPGM
This was first published in January 2001