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?".
You could also use this little CLP:
I don't know where I got it, but it was being shared without copyright...
            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     VAR(&MSGID) VALUE(%SST(&ERRCDE 9 7))             
            IF         COND(&MSGID *NE '       ') THEN(DO) 
                       CHGVAR     VAR(&MSGDTA) VALUE(%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         COND(&MSGID *EQ '       ') THEN(GOTO +           
                         CMDLBL(STDERR3))                               
            SNDPGMMSG  MSGID(&MSGID) MSGF(&MSGFLIB/&MSGF) +             
                         MSGDTA(&MSGDTA) MSGTYPE(*DIAG)                 
            GOTO       CMDLBL(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)               
                                                                        
 EINDE:   /**/                                                                       
Reply or Forwarded mail from: Kenneth E Graap
-----Original Message-----
From: MIDRANGE-L [mailto:midrange-l-bounces@xxxxxxxxxxxx] On Behalf Of rob@xxxxxxxxx
Sent: Thursday, March 19, 2015 12:28 PM
To: Midrange Systems Technical Discussion
Subject: PTF SQL statement Was: Finding Current Subsystem
 
As an Amazon Associate we earn from qualifying purchases.