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 ...
Code
/* 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