Rob here is a little cl that will help when not knowing the LPP. uses
the QPZRTVFX API
(
http://search400.techtarget.com/tip/Display-a-PTF-without-knowing-the-product-number)
PGM PARM(&PTFID) /* Display PTF */
DCL VAR(&PTFID) TYPE(*CHAR) LEN(7)
DCL VAR(&OUTVAR) TYPE(*CHAR) LEN(19)
DCL VAR(&PTFINFO) TYPE(*CHAR) LEN(50) +
VALUE('???????*ONLY ')
DCL VAR(&ERRCDE) TYPE(*CHAR) LEN(56) +
VALUE(X'00000038')
DCL VAR(&LICPGM) TYPE(*CHAR) LEN(7)
DCL VAR(&MSGID) TYPE(*CHAR) LEN(7) /* Std err */
DCL VAR(&MSGDTA) TYPE(*CHAR) LEN(100) /* Std err */
DCL VAR(&MSGF) TYPE(*CHAR) LEN(10) /* Std err */
DCL VAR(&MSGFLIB) TYPE(*CHAR) LEN(10) /* Std err */
MONMSG MSGID(CPF0000) EXEC(GOTO CMDLBL(STDERR1))
CHGVAR VAR(%SST(&PTFINFO 1 7)) VALUE(&PTFID)
CALL PGM(QPZRTVFX) PARM(&OUTVAR X'00000013' +
&PTFINFO 'PTFR0100' &ERRCDE)
CHGVAR VAR(&LICPGM) VALUE(%SST(&OUTVAR 13 7))
CHGVAR &MSGID %SST(&ERRCDE 9 7)
IF COND(&MSGID *NE ' ') THEN(DO)
CHGVAR &MSGDTA %SST(&ERRCDE 17 39)
SNDPGMMSG MSGID(&MSGID) MSGF(QCPFMSG) MSGDTA(&MSGDTA) +
MSGTYPE(*ESCAPE)
ENDDO
ELSE CMD(DSPPTF LICPGM(&LICPGM) SELECT(&PTFID))
GOTO CMDLBL(EINDE)
STDERR1: RCVMSG MSGTYPE(*DIAG) MSGDTA(&MSGDTA) MSGID(&MSGID) +
MSGF(&MSGF) MSGFLIB(&MSGFLIB)
IF (&MSGID *EQ ' ') GOTO STDERR3
SNDPGMMSG MSGID(&MSGID) MSGF(&MSGFLIB/&MSGF) +
MSGDTA(&MSGDTA) MSGTYPE(*DIAG)
GOTO STDERR1 /* Loop back for addl diagnostics */
STDERR3: RCVMSG MSGTYPE(*EXCP) MSGDTA(&MSGDTA) MSGID(&MSGID) +
MSGF(&MSGF) MSGFLIB(&MSGFLIB)
SNDPGMMSG MSGID(&MSGID) MSGF(&MSGFLIB/&MSGF) +
MSGDTA(&MSGDTA) MSGTYPE(*ESCAPE)
ENDPGM
rob@xxxxxxxxx wrote on 3/19/2015 3:27 PM:
One of the things I really like about doing
SELECT * FROM qsys2.ptf_info WHERE PTF_IDENTIFIER = 'SI54936'
instead of
DSPPTF
is that I don't have to know the LPP of the PTF when IBM asks "do you have
ptf such and such?".
Rob Berendt
As an Amazon Associate we earn from qualifying purchases.