|
Jack,
I wrote the following program (called RECYCLE) and changed the RMVM
command to use it as a Validity Checker. It's saved my life MANY
times...
Note that it should be compiled with USRPRF(*OWNER) and then owned by
QSECOFR, otherwise you may get auth errors. Obviously you can add
processing to save different source members, omit them etc. based on
user profile etc.
RECYCLE - Save deleted source members
========================================================================
=
PGM PARM(&QFILE &MBR)
DCL VAR(&QFILE) TYPE(*CHAR) LEN(20)
DCL VAR(&MBR) TYPE(*CHAR) LEN(10)
DCL VAR(&FILE) TYPE(*CHAR) LEN(10)
DCL VAR(&LIB) TYPE(*CHAR) LEN(10)
DCL VAR(&TEXT) TYPE(*CHAR) LEN(50)
MONMSG MSGID(CPF0000 MCH0000) EXEC(GOTO CMDLBL(ERROR))
CHGVAR VAR(&FILE) VALUE(%SST(&QFILE 1 10))
CHGVAR VAR(&LIB) VALUE(%SST(&QFILE 11 10))
/* Check for QRCYCSRC in QRPLOBJ and create if necessary */
CHKOBJ OBJ(QRPLOBJ/QRCYCSRC) OBJTYPE(*FILE)
MONMSG MSGID(CPF0000) EXEC(DO)
RCVMSG MSGTYPE(*EXCP) RMV(*YES)
QSYS/CRTSRCPF FILE(QRPLOBJ/QRCYCSRC) RCDLEN(112) +
TEXT('Saved deleted source members')
ENDDO
/* Copy the source file member into QRPLOBJ/QRCYCSRC */
QSYS/CPYSRCF FROMFILE(&LIB/&FILE) +
TOFILE(QRPLOBJ/QRCYCSRC) FROMMBR(&MBR) +
TOMBR(*FROMMBR) MBROPT(*REPLACE)
CHGVAR VAR(&TEXT) VALUE(&LIB |< '/' || &FILE)
CHGPFM FILE(QRPLOBJ/QRCYCSRC) MBR(&MBR) TEXT(&TEXT)
GOTO CMDLBL(ENDPGM)
ERROR: RCVMSG MSGTYPE(*EXCP) RMV(*YES)
ENDPGM: RMVMSG CLEAR(*ALL)
ENDPGM
========================================================================
=
HTH,
Rory
p.s. Credit where credit is due - I cribbed this from someone else a
long time ago, so I'd hesitate to take full (or indeed, any) credit for
it. I think it was posted to one of the forums several years ago.
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.