| harsha vardhan reddy wrote: |
| I am not to understand from where exactly it is retrieving the datasets.. |
| Code: |
|
/*********************************************************************/ /* THIS EXEC FIND THE DDNAMES & ASSOCIATED DSN'S ALLOCATED FOR A YOUR*/ /* TSO SESSION. IT WORKS EITHER FROM TSO OR UNDER ISPF CONTROL. */ |
| harsha vardhan reddy wrote: |
| Can we scan the jcl & retrieve the datasets... Is there any other approach to develop that kind of tool.. |
| harsha vardhan reddy wrote: |
| I want to develop a REXX tool, which retrieves the dataset names from an jcl(Input & output). |
| harsha vardhan reddy wrote: |
| Hi stefan,
The link which was provided by you is not any more available i think.. Yes stefan similar to that.. Not exactly for scanner but it needs to read the jcl as input file & could retrieve the datasets from that.. |
| Code: |
|
/* REXX */ INSTR = 'LFTEST.R911.INT.STAGE.LOAD' SAY 'NO: OF . ARE : ' WORDS(TRANSLATE(INSTR,' ','.')) - 1 EXIT |
| Quote: |
| How about doing some leg work and searching instead of getting spoon fed every time? |
| Code: |
|
/***************REXX**************/ ADDRESS TSO "alloc f(isfin) tracks space(1) reu" /* used by sdsf */ "alloc f(isfout) new delete reu " , /* used by sdsf */ "tracks space(100,100) lrecl(133) recfm(f,b,a) dsorg(ps)" "alloc f(temp1) da('z198.SAMPLE.output1') shr" /*SAY 'ENTER JOBID:' PULL ID jobid = strip(ID) JOBID = 'JOB02911' SAY 'ENTER JOBNAME:' PULL JNAME JOBNM = STRIP(JNAME) */ RC = ISFCALLS(ON) ISFPREFIX = "TB796" ADDRESS SDSF "ISFEXEC ST" IF RC <> 0 THEN DO SAY 'ERROR' EXIT 20 END LOOP = ISFROWS DO I = 1 TO LOOP COLVAL = VALUE(JOBID.I) IF COLVAL = 'JOB07050' THEN DO ADDRESS SDSF "ISFACT ST TOKEN('"TOKEN.I"') PARM(NP ?)" IF RC <> 0 THEN EXIT DO J = 1 TO STEPN.0 IF STEPN.J = 'TSCRATCH' THEN IF DDNAME.J = 'SYSIN' THEN do QUEUE "PRE" TB796 queue "st" /*queue "filter jobid eq "jobid*/ QUEUE "FIND " COLVAL queue "++?" /* open output of job */ queue "find" SYSIN queue "++S" say ' am after sysin ' queue "print file temp1" /* print to temp dataset */ queue "print 1 999999" queue "print close" queue "end" queue "exit" "execio" queued()" diskw isfin (finis" /* input to sdsf batch */ address ispexec "select pgm(isfafd) parm('++25,80')"/* invoke sdsf */ END END END END RC = ISFCALLS(OFF) --------------X-------------- |
| Code: |
|
/***************REXX**************/ ADDRESS TSO "alloc f(isfin) tracks space(1) reu" /* used by sdsf */ "alloc f(isfout) new delete reu " , /* used by sdsf */ "tracks space(100,100) lrecl(133) recfm(f,b,a) dsorg(ps)" "alloc f(temp1) da('z198.SAMPLE.output1') shr" /*SAY 'ENTER JOBID:' PULL ID jobid = strip(ID) JOBID = 'JOB02911' SAY 'ENTER JOBNAME:' PULL JNAME JOBNM = STRIP(JNAME) */ QUEUE "PRE" TB796 queue "st" /*queue "filter jobid eq "jobid*/ QUEUE "FIND " COLVAL queue "++?" /* open output of job */ RC = ISFCALLS(ON) ISFPREFIX = "TB796" ADDRESS SDSF "ISFEXEC ST" IF RC <> 0 THEN DO SAY 'ERROR' EXIT 20 END LOOP = ISFROWS DO I = 1 TO LOOP COLVAL = VALUE(JOBID.I) IF COLVAL = 'JOB07050' THEN DO ADDRESS SDSF "ISFACT ST TOKEN('"TOKEN.I"') PARM(NP ?)" IF RC <> 0 THEN EXIT DO J = 1 TO STEPN.0 IF STEPN.J = 'TSCRATCH' THEN IF DDNAME.J = 'SYSIN' THEN do queue "find" SYSIN queue "++S" queue "print file temp1" /* print to temp dataset */ queue "print 1 999999" queue "print close" queue "end" queue "exit" "execio" queued()" diskw isfin (finis" /* input to sdsf batch */ address ispexec "select pgm(isfafd) parm('++25,80')"/* invoke sdsf */ END END END END RC = ISFCALLS(OFF) --------------X-------------- |
| Quote: |
| Its an urgent requirement for me.. |
| Quote: |
| I haven't got the solution so i have opted for help that's the reason i have posted on multiple forums. |
output generated using printer-friendly topic mod. All times are GMT - 5 Hours