|
One easy way to do that is to submit it in batch SBMJOB CMD(SNDPTFORD PTFID((SI12343))) Or if you are running in v5r4 or v5r3 you could use the new Control PTF Order QESCPTFO http://publib.boulder.ibm.com/infocenter/iseries/v5r3/index.js p?topic=/apis/qescptfo.htm
The reason I was asking is I wrote a command and CL to order the c u m e, PSP, all group PTFs, or any combination thereof, and didn't want to get bothered repeatedly for that info. I just had the CL submit itself to batch. Here's the command: /* CPP=ORDPTFPKG */ CMD PROMPT('Order PSP, Cum, or Group PTFs') PARM KWD(QRYCUM) + TYPE(*CHAR) + LEN(1) + RSTD(*YES) + DFT(*NO) + SPCVAL((*YES Y) (*NO N)) + PROMPT('Query the latest cum PTF?') PARM KWD(GETPSP) + TYPE(*CHAR) + LEN(1) + RSTD(*YES) + DFT(*NO) + SPCVAL((*YES Y) (*NO N)) + PROMPT('Get the PSP information?') PARM KWD(GETCUM) + TYPE(*CHAR) + LEN(1) + RSTD(*YES) + DFT(*NO) + SPCVAL((*YES Y) (*NO N)) + PROMPT('Get the latest cum PTF?') PARM KWD(GETHIPER) + TYPE(*CHAR) + LEN(1) + RSTD(*YES) + DFT(*NO) + SPCVAL((*YES Y) (*NO N)) + PROMPT('Get the latest HIPER Group?') PARM KWD(GETDB2) + TYPE(*CHAR) + LEN(1) + RSTD(*YES) + DFT(*NO) + SPCVAL((*YES Y) (*NO N)) + PROMPT('Get the latest DB2 Group?') PARM KWD(GETBRS) + TYPE(*CHAR) + LEN(1) + RSTD(*YES) + DFT(*NO) + SPCVAL((*YES Y) (*NO N)) + PROMPT('Get the latest BRS Group?') PARM KWD(GETJVA) + TYPE(*CHAR) + LEN(1) + RSTD(*YES) + DFT(*NO) + SPCVAL((*YES Y) (*NO N)) + PROMPT('Get the latest JVA Group?') PARM KWD(GETHTTP) + TYPE(*CHAR) + LEN(1) + RSTD(*YES) + DFT(*NO) + SPCVAL((*YES Y) (*NO N)) + PROMPT('Get the latest HTTP Group?') PARM KWD(GETPFR) + TYPE(*CHAR) + LEN(1) + RSTD(*YES) + DFT(*NO) + SPCVAL((*YES Y) (*NO N)) + PROMPT('Get the latest PFR Group?') PARM KWD(GETTCP) + TYPE(*CHAR) + LEN(1) + RSTD(*YES) + DFT(*NO) + SPCVAL((*YES Y) (*NO N)) + PROMPT('Get recommended TCP/IP fixes?') Here's the CL: /* Order latest c u m e, PSP, or group PTFs */ PGM PARM(&QRYCUM &GETPSP &GETCUM &GETHIPER &GETDB2 &GETBRS + &GETJVA &GETHTTP &GETPFR &GETTCP) /* PARMS */ DCL VAR(&QRYCUM) + TYPE(*CHAR) + LEN(1)/* Inquire as to what is the latest cum PTF? */ DCL VAR(&GETPSP) + TYPE(*CHAR) + LEN(1)/* Get Preventative Service Planning (PSP) info? */ DCL VAR(&GETCUM) + TYPE(*CHAR) + LEN(1)/* Get latest cum PTF? */ DCL VAR(&GETHIPER) + TYPE(*CHAR) + LEN(1)/* Get latest HIPER group? */ DCL VAR(&GETDB2) + TYPE(*CHAR) + LEN(1)/* Get latest DB2 group? */ DCL VAR(&GETBRS) + TYPE(*CHAR) + LEN(1)/* Get latest BRS group? */ DCL VAR(&GETJVA) + TYPE(*CHAR) + LEN(1)/* Get latest JVA group? */ DCL VAR(&GETHTTP) + TYPE(*CHAR) + LEN(1)/* Get latest HTTP group? */ DCL VAR(&GETPFR) + TYPE(*CHAR) + LEN(1)/* Get latest PFR group? */ DCL VAR(&GETTCP) + TYPE(*CHAR) + LEN(1)/* Get latest recommended TCP/IP fixes? */ /* WORK VARIABLES */ DCL VAR(&QRYPFX) + TYPE(*CHAR) + LEN(4) + VALUE('SF97')/* Prefix for inquiring what is the latest + cum PTF */ DCL VAR(&PSPPFX) + TYPE(*CHAR) + LEN(4) + VALUE('SF98')/* Prefix for PSP info PTF */ DCL VAR(&VRMRAW) + TYPE(*CHAR) + LEN(9)/* As retrieved from data area */ DCL VAR(&VRMINF) + TYPE(*CHAR) + LEN(3)/* After stripping letters V, R, and M */ DCL VAR(&QRYPTF) + TYPE(*CHAR) + LEN(10)/* Latest query cum actual PTF number */ DCL VAR(&PSPPTF) + TYPE(*CHAR) + LEN(10)/* PSP actual PTF number */ DCL VAR(&ACTORDPTF) + TYPE(*CHAR) + LEN(10)/* Actual PTF currently ordering */ DCL VAR(&MSGDTA) + TYPE(*CHAR) + LEN(512)/* Message data */ DCL VAR(&TYPE1) + TYPE(*CHAR) + LEN(1) DCL VAR(&JOB) + TYPE(*CHAR) + LEN(10) DCL VAR(&SBMMSGQ) + TYPE(*CHAR) + LEN(10) DCL VAR(&SBMMSGQLIB) + TYPE(*CHAR) + LEN(10) /* GET JOB ATTRIBUTES */ RTVJOBA JOB(&JOB) + TYPE(&TYPE1) + SBMMSGQ(&SBMMSGQ) + SBMMSGQLIB(&SBMMSGQLIB) /* SET UP MESSAGE QUEUE NAME */ IF COND(&TYPE1 *EQ '1') + THEN(DO) CHGVAR VAR(&SBMMSGQ) + VALUE(&JOB) CHGVAR VAR(&SBMMSGQLIB) + VALUE('*LIBL') ENDDO /***********************/ /* INTERACTIVE PORTION */ /***********************/ IF COND(&TYPE1 *EQ '1') + THEN(DO) SBMJOB CMD(CALL PGM(ORDPTFPKG) PARM(&QRYCUM &GETPSP &GETCUM + &GETHIPER &GETDB2 &GETBRS &GETJVA &GETHTTP &GETPFR + &GETTCP)) + JOB(ORDPTFPKG) SNDPGMMSG MSGID(CPF9897) + MSGF(QCPFMSG) + MSGDTA('Requested PTF packages order has been + submitted.') RETURN ENDDO /*****************/ /* BATCH PORTION */ /*****************/ /* GET THE VERSION, RELEASE, AND MODIFICATION LEVEL */ RTVOBJD OBJ(QSYS/QCMD) + OBJTYPE(*PGM) + SYSLVL(&VRMRAW)/* Returned as VnnRnnMnn. (V02R03M01) */ CHGVAR VAR(&VRMINF) + VALUE(%SST(&VRMRAW 3 1) *CAT %SST(&VRMRAW 6 1) *CAT + %SST(&VRMRAW 9 1)) /* SET UP THE ACTUAL PTF NUMBERS */ CHGVAR VAR(&QRYPTF) + VALUE(&QRYPFX *TCAT &VRMINF) CHGVAR VAR(&PSPPTF) + VALUE(&PSPPFX *TCAT &VRMINF) /* QUERY LATEST C U M */ IF COND(&QRYCUM *EQ 'Y') + THEN(DO) CHGVAR &MSGDTA + VALUE('Querying the latest cumulative PTF,' *BCAT + &QRYPTF) CHGVAR VAR(&ACTORDPTF) + VALUE(&QRYPTF) CALLSUBR SUBR(ORDPTF) ENDDO /* PSP INFO C U M */ IF COND(&GETPSP *EQ 'Y') + THEN(DO) CHGVAR VAR(&MSGDTA) + VALUE('Ordering the latest Preventative Service Planning + (PSP) PTF,' *BCAT &PSPPTF) CHGVAR VAR(&ACTORDPTF) + VALUE(&PSPPTF) CALLSUBR SUBR(ORDPTF) ENDDO /* LATEST C U M */ IF COND(&GETCUM *EQ 'Y') + THEN(DO) CHGVAR VAR(&MSGDTA) + VALUE('Ordering the latest cumulative PTF') CHGVAR VAR(&ACTORDPTF) + VALUE('*CUMPKG') CALLSUBR SUBR(ORDPTF) ENDDO /* HIPER GROUP */ IF COND(&GETHIPER *EQ 'Y') + THEN(DO) CHGVAR VAR(&MSGDTA) + VALUE('Ordering the HIPER group') CHGVAR VAR(&ACTORDPTF) + VALUE('*HIPERGRP') CALLSUBR SUBR(ORDPTF) ENDDO /* DB2 GROUP */ IF COND(&GETDB2 *EQ 'Y') + THEN(DO) CHGVAR VAR(&MSGDTA) + VALUE('Ordering the DB2 group') CHGVAR VAR(&ACTORDPTF) + VALUE('*DB2GRP') CALLSUBR SUBR(ORDPTF) ENDDO /* BRS GROUP */ IF COND(&GETBRS *EQ 'Y') + THEN(DO) CHGVAR VAR(&MSGDTA) + VALUE('Ordering the BRS group') CHGVAR VAR(&ACTORDPTF) + VALUE('*BRSGRP') CALLSUBR SUBR(ORDPTF) ENDDO /* JAVA GROUP */ IF COND(&GETJVA *EQ 'Y') + THEN(DO) CHGVAR VAR(&MSGDTA) + VALUE('Ordering the JVA group') CHGVAR VAR(&ACTORDPTF) + VALUE('*JVAGRP') CALLSUBR SUBR(ORDPTF) ENDDO /* HTTP GROUP */ IF COND(&GETHTTP *EQ 'Y') + THEN(DO) CHGVAR VAR(&MSGDTA) + VALUE('Ordering the HTTP group') CHGVAR VAR(&ACTORDPTF) + VALUE('*HTTPGRP') CALLSUBR SUBR(ORDPTF) ENDDO /* PFR GROUP */ IF COND(&GETPFR *EQ 'Y') + THEN(DO) CHGVAR VAR(&MSGDTA) + VALUE('Ordering the PFR (performance) group') CHGVAR VAR(&ACTORDPTF) + VALUE('*PFRGRP') CALLSUBR SUBR(ORDPTF) ENDDO /* TCP/IP RECOMMENDED FIXES */ IF COND(&GETTCP *EQ 'Y') + THEN(DO) CHGVAR VAR(&MSGDTA) + VALUE('Ordering the recommended TCP/IP fixes') CHGVAR VAR(&ACTORDPTF) + VALUE('SF99315') CALLSUBR SUBR(ORDPTF) ENDDO /* Send a completion message */ SNDPGMMSG MSGID(CPF9897) + MSGF(QCPFMSG) + MSGDTA('All requested PTF groups/packages have been + ordered') + TOMSGQ(&SBMMSGQLIB/&SBMMSGQ) /*******************************/ /* Subroutine to order the PTF */ /*******************************/ SUBR SUBR(ORDPTF) SNDPGMMSG MSGID(CPF9897) + MSGF(QCPFMSG) + MSGDTA(&MSGDTA) + TOMSGQ(&SBMMSGQLIB/&SBMMSGQ QSYSOPR) SNDPTFORD PTFID((&ACTORDPTF)) + DELIVERY(*ANY) ENDSUBR ENDPGM If it's usefule to anyone, go ahead and use it.
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 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.