Created
June 23, 2016 18:34
-
-
Save jarhoads/eef61990034d997ef6f432684b506267 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* REXX */ | |
/* REXX PROGRAM FOR PROCESSING SDSF WITH REXX */ | |
/* CHANGE THE DDNAME TO BE THE OUTPUT FILE YOU WANT */ | |
/* CHANGE ISFPREFIX TO BE THE PREFIX FOR YOUR JOBS */ | |
/* I USUALLY USE THIS TO FIND ALL OF MY TEST FILES */ | |
/* AFTER RUNNING THE SUPERCE UTILITY IN BATCH MODE */ | |
/* JOSH RHOADS - MARCH 2015 */ | |
DDNAME = "'HLQUAL.DD.MIDQUAL.TSTFILES'" | |
RC = ISFCALLS('ON') | |
/* ACCESS THE ST DISPLAY */ | |
ISFPREFIX = 'JOBPFX*' | |
ADDRESS SDSF "ISFEXEC ST" | |
OUT_LINE_NUM = 0 /* LINE NUMBER FOR OUTPUT FILE */ | |
/* LOOP FOR ALL RUNNING JOBPFX JOBS */ | |
SAY "NUMBER OF JOBS : " JNAME.0 | |
JOBNUM = "" | |
DO JOB_I=1 TO JNAME.0 | |
/* | |
SAY "JOBNAME : " JNAME.JOB_I | |
SAY "QUEUE TYPE : " QUEUE.JOB_I | |
SAY "ACTIVE SYS : " ACTSYS.JOB_I | |
*/ | |
/* DO A ? ON THE JOB TO GET THE DATA SETS*/ | |
ADDRESS SDSF "ISFACT ST TOKEN('"TOKEN.JOB_I"') PARM(NP ?)" , | |
"( PREFIX JDS_" | |
/* FIND THE SYSOUT DATA SET AND ALLOCATE IT */ | |
/* USING THE SA ACTION CHARACTER */ | |
DO JOB_DS_J=1 TO JDS_DDNAME.0 | |
IF JDS_DDNAME.JOB_DS_J = "OUTDD" THEN | |
DO | |
ADDRESS SDSF "ISFACT ST TOKEN('"JDS_TOKEN.JOB_DS_J"')" , | |
"PARM(NP SA)" | |
/* READ THE RECORDS FROM THE DATA SET AND LIST THEM. */ | |
/* THE DDNAME FOR EACH ALLOCATED DATA SET WILL BE IN */ | |
/* THE ISFDDNAME STEM. SINCE THE SA ACTION WAS DONE */ | |
/* FROM JDS, ONLY ONE DATA SET WILL BE ALLOCATED. */ | |
DO DDNAME_K=1 TO ISFDDNAME.0 | |
SAY "NOW READING" ISFDSNAME.DDNAME_K | |
"EXECIO * DISKR" ISFDDNAME.DDNAME_K , | |
"(STEM LINE. FINIS" | |
SAY " LINES READ:" LINE.0 | |
DO LINE_L = 1 TO LINE.0 | |
/* ADD LINE PARSING AND FILE CREATION */ | |
PARSE UPPER VAR LINE.LINE_L 'NEW:' DS1 'OLD:' DS2 | |
DS1 = STRIP(DS1) | |
DS2 = STRIP(DS2) | |
IF DS1 ^= '' & DS2 ^= '' THEN | |
DO | |
IF JOBNUM ^= JOB_I THEN | |
DO | |
JOBNUM = JOB_I | |
SAY "JOBNAME : " JNAME.JOB_I | |
SAY "JOBID : " JOBID.JOB_I | |
OUT_LINE_NUM = OUT_LINE_NUM + 1 | |
OUT.OUT_LINE_NUM = JNAME.JOB_I||"-"||JOBID.JOB_I | |
END | |
SAY "FIRST DS : " DS1 | |
OUT_LINE_NUM = OUT_LINE_NUM + 1 | |
OUT.OUT_LINE_NUM = DS1 | |
SAY "SECOND DS : " DS2 | |
OUT_LINE_NUM = OUT_LINE_NUM + 1 | |
OUT.OUT_LINE_NUM = DS2 | |
ITERATE DDNAME_K /* GO TO NEXT FILE */ | |
END | |
ELSE NOP | |
/*SAY " LINE."LINE_L "IS:" LINE.LINE_L*/ | |
END | |
END | |
END | |
END | |
END | |
RC = ISFCALLS('OFF') | |
SAY "WRITING OUTPUT TO : " DDNAME | |
ADDRESS TSO "ALLOC F(OUT) DA("DDNAME") NEW" | |
ADDRESS TSO "EXECIO * DISKW OUT (FINIS STEM OUT." | |
ADDRESS TSO "FREE F(OUT)" | |
IF RC = 0 THEN | |
DO | |
SAY OUT_LINE_NUM "LINES WRITTEN TO : " DDNAME | |
END | |
ELSE | |
DO | |
SAY "ERROR WHILE WRITING TO OUT FILE, RC : " RC | |
END |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment