1)OPM
DSPOBJD DETAIL(*SERVICE)
2)ILE
DSPPGM DETAIL(*MODULE)
3)RVTSRC
代码
PGM PARM(&LIB &PGM &SRCLIB &SRCFILE &SRCMBR)
/* PARM DECLARE */
DCL VAR(&LIB) TYPE(*CHAR) LEN(10)
DCL VAR(&PGM) TYPE(*CHAR) LEN(10)
DCL VAR(&SRCLIB) TYPE(*CHAR) LEN(10)
DCL VAR(&SRCFILE) TYPE(*CHAR) LEN(10)
DCL VAR(&SRCMBR) TYPE(*CHAR) LEN(10)
/* VAR DECLARE */
DCL VAR(&STRPOS) TYPE(*CHAR) LEN(4)
DCL VAR(&DEVICE) TYPE(*CHAR) LEN(20)
DCL VAR(&TEXT) TYPE(*CHAR) LEN(50) VALUE('TEMP +
RVTSRC USRSPC')
DCL VAR(&LFM) TYPE(*CHAR) LEN(30)
DCL VAR(&ERR) TYPE(*CHAR) LEN(20)
DCL VAR(&SPACE) TYPE(*CHAR) LEN(20)
DCL VAR(&RTVLEN) TYPE(*CHAR) LEN(4)
/* OPM */
RTVOBJD OBJ(&LIB/&PGM) OBJTYPE(*PGM) SRCF(&SRCFILE) +
SRCFLIB(&SRCLIB) SRCMBR(&SRCMBR)
MONMSG MSGID(CPF0000)
IF COND(&SRCMBR *NE ' ') THEN(GOTO +
CMDLBL(END))
/* ILE */
CHGVAR VAR(&DEVICE) VALUE(&PGM *CAT &LIB)
CHGVAR VAR(&SPACE) VALUE('CVTILESPCIQTEMP ')
CALL PGM(QUSCRTUS) PARM(&SPACE ' ' +
X'00001000' ' ' '*ALL ' &TEXT)
CALL PGM(QBNLPGMI) PARM(&SPACE 'PGML0110' &DEVICE +
&ERR)
CHGVAR VAR(%BIN(&RTVLEN)) VALUE(30)
CHGVAR VAR(%BIN(&STRPOS)) VALUE(305)
CALL PGM(QUSRTVUS) PARM(&SPACE &STRPOS &RTVLEN &LFM)
CHGVAR VAR(&SRCFILE) VALUE(%SST(&LFM 1 10))
CHGVAR VAR(&SRCLIB) VALUE(%SST(&LFM 11 10))
CHGVAR VAR(&SRCMBR) VALUE(%SST(&LFM 21 10))
CALL PGM(QUSDLTUS) PARM(&SPACE &ERR)
END: ENDPGM