The output can be either in a legacy sequential dataset, or as a file in an 
exising UNIX subdirectory. Oh, if the dataset / UNIX file already exists, this 
code bypasses doing it again. This allows you to resubmit without worrying 
about reprocessing a job you've already done. It only processes JOBs/STCs/TSUs 
in the PRINT or OUTPUT queue. It runs only in a TSO TMP (interactive or batch). 
I may do something as a UNIX REXX program someday.

Invocation: JES2DISK jobname_or_prefix_with_a_* 'disk_hlq_or_UNIX_subdirectory'
 
example: copy all ABC* jobs to ABC001.SPOOL.jobname.jobid dataset: JES2DISK 
ABC* 'ACB001.SPOOL'
 
copy all ABC* jobs to /u/ACB001/sysout/jobname.jobid.txt: JES2DISK ABC* 
'/u/ACB001/sysout'
 
I thought the .txt at the end of the UNIX filename would be helpful if 
downloaded to Windows.
 
<program language='REXX'>
/* REXX */
PARSE ARG JOBNAME HLQ .
IF JOBNAME='' THEN JOBNAME='*'
HLQ=STRIP(HLQ,'B',"'")
IF HLQ='' THEN HLQ='SYSJO'
XX=ISFCALLS('ON')
ISFSORT='JOBID'
ISFPREFIX=JOBNAME
IF XX <> 0 THEN DO
   SAY 'ISFCALLS RC='XX
   RETURN XX
END
ADDRESS SDSF 'ISFEXEC ST  (DELAYED)'
IF RC <> 0 THEN DO
   SAY 'ISFEXEC RC='RC
   RETURN RC
END
DO IX=1 TO JNAME.0
/* "LISTALC SYSNAMES STATUS"  */
   IF QUEUE.IX <> 'PRINT' & ,
      QUEUE.IX <> 'OUTPUT'  ,
   THEN ITERATE
   SAY 'JBN='JNAME.IX' JOBNUMBER='JOBID.IX' QUEUE='QUEUE.IX
   IF '/' = LEFT(HLQ,1) THEN DO
      SAY ,
      'CC=BPXWDYN("ALLOC DD(SYSJO) FILEDATA(TEXT) "'||,
         "PATH('"HLQ"/"JNAME.IX"."JOBID.IX".txt') " ||,
         " PATHMODE(SIRWXU) PATHOPTS(OEXCL,OCREAT,OWRONLY) " ||,
         " MSG(WTP)"
      CC=BPXWDYN("ALLOC DD(SYSJO) FILEDATA(TEXT) ",
         "PATH('"HLQ"/"JNAME.IX"."JOBID.IX".txt') ",
         " PATHMODE(SIRWXU) PATHOPTS(OEXCL,OCREAT,OWRONLY) ",
         " MSG(WTP)")
   END
   ELSE DO
      SAY ,
      "ALLOC DDN(SYSJO) DSN('"HLQ"."JNAME.IX"."JOBID.IX"')",
        " RECFM(V B A) LRECL(255) BLKSIZE(27998) ",
        " NEW CATALOG SPACE(10,50) CYLINDERS RELEASE"
      "ALLOC DDN(SYSJO) DSN('"HLQ"."JNAME.IX"."JOBID.IX"')",
        " RECFM(V B A) LRECL(255) BLKSIZE(27998) ",
        " NEW CATALOG SPACE(10,50) CYLINDERS RELEASE"
      CC=RC
   END
   IF CC <> 0 THEN DO
      SAY "FAILED TO ALLOCATE "JNAME.IX"."JOBID.IX
      ITERATE
   END
   ADDRESS SDSF "ISFACT ST TOKEN('"TOKEN.IX"') PARM(NP SA)"
   DO JX=1 TO ISFDDNAME.0
      DO FOREVER
         "EXECIO 10000 DISKR "ISFDDNAME.JX"(STEM LINE. "
         LINES = LINE.0
         IF RC=2 THEN RC=0
         IF RC <> 0 THEN DO
            SAY "LINES READ="LINES" RC="RC
            EXIT 12;
         END
         "EXECIO * DISKW SYSJO (STEM LINE."
         DROP LINE.
         IF LINES<10000 THEN LEAVE
      END
      "EXECIO 0 DISKR "ISFDDNAME.JX"(FINIS"
   END
   DROP ISFDDNAME.
   "EXECIO 0 DISKW SYSJO (FINIS"
   "FREE DDN(SYSJO)"
END 
</program>
 
John McKown 

Systems Engineer IV

IT

 

Administrative Services Group

 

HealthMarkets(r)

 

9151 Boulevard 26 * N. Richland Hills * TX 76010

(817) 255-3225 phone * (817)-961-6183 cell

john.mck...@healthmarkets.com * www.HealthMarkets.com

 

Confidentiality Notice: This e-mail message may contain confidential or 
proprietary information. If you are not the intended recipient, please contact 
the sender by reply e-mail and destroy all copies of the original message. 
HealthMarkets(r) is the brand name for products underwritten and issued by the 
insurance subsidiaries of HealthMarkets, Inc. -The Chesapeake Life Insurance 
Company(r), Mid-West National Life Insurance Company of TennesseeSM and The 
MEGA Life and Health Insurance Company.SM

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to