I do not see the mistake that I am making here. I set some variables,
use some of them to stream a job, then use some of them to detect the
state of the spool file via LISTSPF, with the goal of flushing if there
is an error, and going on to the next such job stream if everything
worked. This fails within the job stream as seen in the stdlist below.
But when I cut and paste the same command into the command line, logged
into the same user and account, the command works as expected.
It is clearly not the case that the first job flushed, as can be seen
from the working command; I have confirmed this by inspection of that
stdlist. The system has almost no load on it, so I cannot imagine that
there might not yet be a splfile for LISTSPF to detect.
On a minor note, if anyone detects an inelegance in this logic, or knows
of a better way to do this using only MPE, I always welcome suggestions.
I look forward to using Carl Kemp's freeware MasterOp, but in the
meantime, I thought that this would be easy enough to do this way.
:TELL MANAGER.!HPAccount;Background Driver Prior to Nightly
TELL MANAGER.ISIN01;Background Driver Prior to Nightly
"J253 MANAGER.ISIN01" not interactive. Message not sent to job.
(CIWARN 1627)
:ERRCLEAR
:SETVAR ThisJob "B049906"
:SETVAR GroupNumber STR("!ThisJob",3,1)
:COMMENT Set variable to today's date
:SETVAR today "!HPMONTH" + "/" + "!HPDATE" + "/" + "!HPYEAR"
:STREAM !ThisJob.JOB0!GroupNumber
#J254
:WHILE CIERROR=OK
*** EXPRESSION TRUE
: LISTSPF O@;SELEQ=[JOBNAME=!ThisJob &
: AND STATE=CREATE &
: AND JOBABORT=FALSE]
LISTSPF O@;SELEQ=[JOBNAME=B049906 AND STATE=CREATE AND JOBABORT=FALSE]
No qualified spoolfile(s). (CIWARN 4809)
INPUT SPOOL FILES OUTPUT SPOOL FILES
ACTIVE = 0; CREATE = 0; READY = 0;
OPEN = 0; DEFER = 0; SELECTED = 0;
READY = 0; DELPND = 0; SPSAVE = 0;
PRINT = 0; XFER = 0;
PROBLM = 0;
TOTAL IN FILES = 0; TOTAL OUT FILES = 0;
IN SECTORS = 0; OUT SECTORS = 0;
OUTFENCE = 14
: IF CIERROR=OK
*** EXPRESSION FALSE: COMMANDS IGNORED UNTIL MATCHING ELSEIF/ELSE
/ENDIF
: PAUSE 66
: ENDIF
*** RESUME EXECUTION OF COMMANDS
:ENDWHILE
*** RESUME EXECUTION OF COMMANDS
:LISTSPF O@;SELEQ=[JOBNAME=!ThisJob &
: AND DATE=!today &
: AND JOBABORT=FALSE]
LISTSPF O@;SELEQ=[JOBNAME=B049906 AND DATE=4/22/97 AND JOBABORT=FALSE]
No qualified spoolfile(s). (CIWARN 4809)
INPUT SPOOL FILES OUTPUT SPOOL FILES
ACTIVE = 0; CREATE = 0; READY = 0;
OPEN = 0; DEFER = 0; SELECTED = 0;
READY = 0; DELPND = 0; SPSAVE = 0;
PRINT = 0; XFER = 0;
PROBLM = 0;
TOTAL IN FILES = 0; TOTAL OUT FILES = 0;
IN SECTORS = 0; OUT SECTORS = 0;
OUTFENCE = 14
:IF CIERROR <> OK
*** EXPRESSION TRUE
:COMMENT If the STDList for this job does not list OK, flush this job.
: ESCAPE
REMAINDER OF JOB FLUSHED.
(116/117) Continue?
CPU sec. = 1. elapsed min. = 1. TUE, APR 22, 1997, 8:07 PM.
--------
So, here I retry the same command, with ;DETAIL.
:LISTSPF O@;SELEQ=[JOBNAME=B049906 AND DATE=4/22/97 AND
JOBABORT=FALSE];DETAIL
:LISTSPF O@;SELEQ=[JOBNAME=B049906 AND DATE=4/22/97 AND
JOBABORT=FALSE];DL
SPOOLID JOBNUM FILEDES PRI COPIES DEV STATE RSPFN OWNER
FORMID JOBNAME COPSRM SECTS RECS PAGES DATE
TIME
#O666 J257 $STDLIST 1 1 LP READY
MANAGER.ISIN01
B049906 1 32 125 ~3 04/22/97
22:03
INPUT SPOOL FILES OUTPUT SPOOL FILES
ACTIVE = 0; CREATE = 0; READY = 1;
OPEN = 0; DEFER = 0; SELECTED = 0;
READY = 0; DELPND = 0; SPSAVE = 0;
PRINT = 0; XFER = 0;
PROBLM = 0;
TOTAL IN FILES = 0; TOTAL OUT FILES = 1;
IN SECTORS = 0; OUT SECTORS = 32;
OUTFENCE = 14
:
|