|
I've done that in the past, using the scheduler. Every second Thursday,
I'd order the HIPER's, and order the cumulative every quarter.
The tapes/CD's showed up the following Monday
--
Paul Nelson
Arbor Solutions, Inc.
708-670-6978 Cell
pnelson@xxxxxxxxxx
-----midrange-l-bounces@xxxxxxxxxxxx wrote: -----
To: "'Midrange Systems Technical Discussion'" <midrange-l@xxxxxxxxxxxx>
From: "Jeff Crosby" <jlcrosby@xxxxxxxxxxxxxxxx>
Sent by: midrange-l-bounces@xxxxxxxxxxxx
Date: 07/19/2006 10:36AM
Subject: RE: SNDPTFORD w/no prompt for contact info
> 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.
--
Jeff Crosby
Dilgard Frozen Foods, Inc.
P.O. Box 13369
Ft. Wayne, IN 46868-3369
260-422-7531
The opinions expressed are my own and not necessarily the opinion of my
company. Unless I say so.
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing
list
To post a message email: MIDRANGE-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/midrange-l.
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.