Evaluate
Weigh the pros and cons of technologies, products and projects you are considering.
Using the PDM option to see object use
Know when a program or object was last used so you can determine if it can be archived and deleted.
I often want to know when a program or object was last used, or if ever used, so I can determine if it can be archived...
Continue Reading This Article
Enjoy this article as well as all of our content, including E-Guides, news, tips and more.
Step 2 of 2:
and deleted.
In PDM, set this program up as option DO by pressing F16
Option: DO
Command: call @dspobjd (&l &n &t 'Y')
/* Modified front end for dspobjd for use as pdm option */ pgm parm(&library &name &type &quiet) dcl &library *char 10 dcl &type *char 10 dcl &quiet *char 1 /* quiet=1 means no dspobjd, 25th line msg */ dcl &name *char 10 dcl &lastuse *char 7 dcl &usage *char 20 if (%sst(&type 1 3) *eq 'RPG') chgvar &type '*PGM' /* rpg, rpgle */ if (%sst(&type 1 3) *eq 'SQL') chgvar &type '*PGM' /* sqlrpg, sqlrpgle */ if (%sst(&type 1 2) *eq 'CL') chgvar &type '*PGM' /* clp, clle */ if (%sst(&type 2 1) *eq 'F') chgvar &type '*FILE' /* pf, lf, pf38, lf38 */ if (%sst(&type 1 3) *eq 'DSP') chgvar &type '*FILE' /* dspf */ if (&quiet *ne 'Y') then(do) dspobjd &library/&name &type monmsg cpf2105 exec(goto tryagain) enddo rtvobjd obj(&library/&name) objtype(&type) usedate(&lastuse) monmsg (cpf9811 cpf9812) exec(goto done) goto notify tryagain: /* library was wrong? */ if (&quiet *ne 'Y') then(do) dspobjd &name &type monmsg cpf2105 exec(goto error) enddo rtvobjd obj(&name) objtype(&type) usedate(&lastuse) rtnlib(&library) monmsg (cpf9811 cpf9812) exec(goto done) chgvar &library ('*' *tcat &library *tcat '*') goto notify notify: if (&lastuse *eq ' ') chgvar &usage (' *Never used') else chgvar &usage (' last use: ' - *tcat %sst(&lastuse 4 2) *cat '/' *cat %sst(&lastuse 6 2) - *cat '/' *cat %sst(&lastuse 2 2)) sndpgmmsg msgid(cpf9898) msgf(qcpfmsg) + msgdta(&library *tcat '/' *tcat &name - *tcat '(' *tcat &type *tcat ') ' *cat &usage) - topgmq(*prv) msgtype(*comp) goto done error: sndpgmmsg msgid(cpf9898) msgf(qcpfmsg) + msgdta('No object found for ' *cat &library *tcat '/' *tcat &name - *tcat '(' *tcat &type *tcat ')') + topgmq(*prv) msgtype(*comp) goto done done: endpgm
This was last published in May 2005
Start the conversation
0 comments