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 first published in May 2005