Re: Accessing JCL SETs in Rexx
On Fri, 4 Aug 2023 17:33:18 +, Jon Perryman wrote: > > On Friday, August 4, 2023 at 09:24:10 AM PDT, Tom Marchant wrote: > >> What if you copy the JCL to a new data set, replacing all the EXEC PGM=xxx> >> to EXEC PGM=IEFBR14? and submit it? > >Substituting IEFBR14 only stops program processing. JCL processing will still >alloc, delete and possibly other bad things.in > Better, then, to wrap everything with a disabling IF .. ENDIF. Need to add a precedng IEFBR14 because IF doesn't affect the first job step. (I'd say not JCL processing but the initiator performs allocation/deletion.) -- gil -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Accessing JCL SETs in Rexx
> On Friday, August 4, 2023 at 09:37:43 AM PDT, Paul Gilmartin > <042bfe9c879d-dmarc-requ...@listserv.ua.edu> wrote: > Where's JES3 Setup processing when you need it? Setup processing doesn't help Dave because it requires the job be submitted and queued. It also ignores inter-job relationships. He wants to verify during the day to avoid calls at night. I'm surprised that Dave doesn't have a job schedular which most likely does everything he wants. I suspect that he is in a development environment where he is given jobs to run at night and he doesn't want to do one-off additions to the job schedular. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Accessing JCL SETs in Rexx
> On Friday, August 4, 2023 at 09:24:10 AM PDT, Tom Marchant wrote: > What if you copy the JCL to a new data set, replacing all the EXEC PGM=xxx> > to EXEC PGM=IEFBR14? and submit it? Substituting IEFBR14 only stops program processing. JCL processing will still alloc, delete and possibly other bad things.in -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Accessing JCL SETs in Rexx
> On Friday, August 4, 2023 at 04:04:39 AM PDT, Seymour J Metz > wrote: > Back in the bad old days, IBM showed the expansion immediately after the JCL. > Alas, in MVS they chose to show it as a message in a separate JES dataset. > Have they moved IEF653I to be inline since then? I'm guessing your right that IEF653I is still in JESMSGLG and probably won't be displayed in TYPERUN=SCAN. Since the IEF653I comes out at interpreter phase, chances are the interpreter only interprets a step just before it runs. This also means the instorage JCL will have only been converted and awaiting interpreter. If Dave needs the converted JCL in addition to the variables, then he can grab it from storage without all the JESJCL funk otherwise just forget my previous suggestion. Thanks. On Friday, August 4, 2023 at 04:04:39 AM PDT, Seymour J Metz wrote: Back in the bad old days, IBM showed the expansion immediately after the JCL. Alas, in MVS they chose to show it as a message in a separate JES dataset. Have they moved IEF653I to be inline since then? -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of Paul Gilmartin [042bfe9c879d-dmarc-requ...@listserv.ua.edu] Sent: Friday, August 4, 2023 12:02 AM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: Accessing JCL SETs in Rexx On Fri, 4 Aug 2023 03:32:01 +, Jon Perryman wrote: > > On Thursday, August 3, 2023 at 12:21:34 PM PDT, David Spiegel wrote: >> My intention is to read a Job and make sure that all datasets are available, >> but, the dsnames contain SET variables. > >The converter / interpreter will resolve variables. Submit the job with >typerun scan or hold should generate the information you want. > I've found SCAN to be almost worthless. It doesn't always report invalid data set names. >If you're not comfortable with control blocks, IPCS and dumps, then you can >use SDSF to extract the converted JCL albeit a little funky to process. > Is there a JES data set accessible by SDSF that shows symbols resolved? what does it show if symbol resolution extends a line beyond column 71? In fact, any continuation that splits a data set name can be "a little funky to process." -- gil -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Accessing JCL SETs in Rexx
I see IEFC653I in the JESJCL data set. I don't know why IEFC653I seems to have replaced IEF653I. -- Tom Marchant On Fri, 4 Aug 2023 11:04:24 +, Seymour J Metz wrote: >Back in the bad old days, IBM showed the expansion immediately after the JCL. >Alas, in MVS they chose to show it as a message in a separate JES dataset. >Have they moved IEF653I to be inline since then? -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Accessing JCL SETs in Rexx
Maybe some DISP=(OLD,DELETE) might have unforseen consequenses when actually executing the JCL, even with PGM=IEFBR14. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Accessing JCL SETs in Rexx
On Fri, 4 Aug 2023 11:24:06 -0500, Tom Marchant wrote: >What if you copy the JCL to a new data set, replacing all the EXEC PGM=xxx >to EXEC PGM=IEFBR14? and submit it? > >JCL errors would be pretty obvious. > Where's JES3 Setup processing when you need it? -- gil -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Accessing JCL SETs in Rexx
What if you copy the JCL to a new data set, replacing all the EXEC PGM=xxx to EXEC PGM=IEFBR14? and submit it? JCL errors would be pretty obvious. -- Tom Marchant On Thu, 3 Aug 2023 21:58:22 +, David Spiegel wrote: >The purpose of the scan is to ensure that my jobs which implement a Middleware >upgrade have a good chance of succeeding. >These jobs are SUBMITd at 02:00 when the adrenaline is flowing, Teams messages >are non-stop and the stress level is through the roof. >The last thing I want to do is start looking for missing Datasets and/or >RENAME conflicts. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Accessing JCL SETs in Rexx
No. Here's what the JCL References says for "EXPORT" - Purpose: Use the EXPORT statement to make specific JCL symbols available to the job step program. Exported JCL symbols can be accessed during the job execution phase using the JCL Symbol Service (IEFSJSYM) or the JES Symbol Service (IAZSYMBL). Symbols must be set to a value subsequent to the EXPORT statement for the symbol value to be exported. So, without exporting, I don't believe that there is a supported API for a program to see JCL or JES symbols. Kirk Wolf On Thu, Aug 3, 2023, at 7:02 PM, Sri h Kolusu wrote: > Kirk, > > Does this work for symbols that are NOT exported? > > For ex: > > // SET HLQ= > // SET MLQ=SOME > // SET TLQ=DSN > // SET FLQ=DUMP > // SET MYDSN= > // SET MYVOL=SYS001 > // SET DCLAS=EDCCOMPR > // SET SCLAS=STANDARD > // SET PRI=5000 > // SET SEC=2000 > // SET VU=3 > // SET DV=SYSDA > // SET AU=TRK > //* > //SYMEX EXEC PGM=COZBATCH > //SYSMDUMP DD DSN=, > //DISP=(NEW,CATLG), > //DATACLAS=,STORCLAS=,EATTR=OPT, > //UNIT=(,),SPACE=(,(,),RLSE), > //DCB=(RECFM=FBS,LRECL=4160,BLKSIZE=24960) > /* > //STDIN DD * > ENV | GREP "JES_" > /* > > Thanks, > Kolusu > > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Accessing JCL SETs in Rexx
Thanks Robert, that looks useful for the rest of us as well. There are ISV products (we use JCLCHECK) that also perform this function as part of preparing JCL for production install, but freely shared code is good too. However, even the best “checker” software can’t tell you if newly-introduced application files (especially GDG’s) that won’t exist until the first batch job to create them actually runs are going to be available after JCL turnover to production. Peter From: IBM Mainframe Discussion List On Behalf Of Robert Prins Sent: Friday, August 4, 2023 10:54 AM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: Accessing JCL SETs in Rexx In essence, I've not used this since about forever, but when we, as in I, decided we needed to start using parametrized procs at Willis around the Y2K time, and people were frustrated by not being able to see the wood from the trees, I very quickly knocked up the code below, I have no clue if it's still working, but we used it in SDSF on the JCL of TYPRUN=SCAN submitted jobs, to get rid of all the IEF653I messages. Feel free to play around with it, if you see to improve it, please share your code, and if you don't like GPL'ed code, though! Robert And yes, it requires, IIRC, nice parameters on procs and the invocation of procs and on set statements, so one per line. And no, it was a Q hack, so error-checking is non-existent, expect to invoke it lots of times after uncommenting the "trace ?r" or by preceding it with "EXECUTIL TS" Enjoy, Robert On Fri, 4 Aug 2023 at 11:04, Seymour J Metz mailto:sme...@gmu.edu>> wrote: > Back in the bad old days, IBM showed the expansion immediately after the > JCL. Alas, in MVS they chose to show it as a message in a separate JES > dataset. Have they moved IEF653I to be inline since then? > > > -- > > From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf > of Paul Gilmartin [042bfe9c879d-dmarc-requ...@listserv.ua.edu] > Sent: Friday, August 4, 2023 12:02 AM > To: IBM-MAIN@LISTSERV.UA.EDU<mailto:IBM-MAIN@LISTSERV.UA.EDU> > Subject: Re: Accessing JCL SETs in Rexx > > On Fri, 4 Aug 2023 03:32:01 +, Jon Perryman wrote: > > > > On Thursday, August 3, 2023 at 12:21:34 PM PDT, David Spiegel wrote: > >> My intention is to read a Job and make sure that all datasets are > available, > >> but, the dsnames contain SET variables. > > > >The converter / interpreter will resolve variables. Submit the job with > typerun scan or hold should generate the information you want. > > > I've found SCAN to be almost worthless. It doesn't always report invalid > data set names. > > >If you're not comfortable with control blocks, IPCS and dumps, then you > can use SDSF to extract the converted JCL albeit a little funky to process. > > > Is there a JES data set accessible by SDSF that shows symbols resolved? > what does it show if symbol resolution extends a line beyond column 71? > > In fact, any continuation that splits a data set name can be "a little > funky > to process." -- This message and any attachments are intended only for the use of the addressee and may contain information that is privileged and confidential. If the reader of the message is not the intended recipient or an authorized representative of the intended recipient, you are hereby notified that any dissemination of this communication is strictly prohibited. If you have received this communication in error, please notify us immediately by e-mail and delete the message and any attachments from your system. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Accessing JCL SETs in Rexx
Hi Gil, JCL is stored in a file and is read by EXECIO. Regards, David From: IBM Mainframe Discussion List on behalf of Paul Gilmartin <042bfe9c879d-dmarc-requ...@listserv.ua.edu> Sent: Thursday, August 3, 2023 3:53:05 p.m. To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: Accessing JCL SETs in Rexx On Thu, 3 Aug 2023 19:21:27 +, David Spiegel wrote: > >My intention is to read a Job and make sure that all datasets are available, >but, the dsnames contain SET variables. > By "read a Job" do you mean that JCL resides in a file or PDS member and you want to read that JCL with EXECIO or linein() and identify all data set names in equivalent JCL having substituted values in its SET statements? I doubt that you can do that without writing your own parser/interpreter. But perhaps TYPRUN=HOLD and scan the JESJCL with the SDSF API. -- gil -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Accessing JCL SETs in Rexx
Paul, END is how the variable name ends. It can be separated by comma, a dot, tow dots and a space. After substituting the variable with its value, I clean double dots for example. Remember that in the op situation, the input is a jock library. Nothing was submitted nor running. IEF messages are not relevant in this case. Btw, substituting DD cards a Is relatively simple. Try to parse parm fields that might have spaces, brackets and apostrophes and variables inside Best, ITschak בתאריך יום ו׳, 4 באוג׳ 2023 ב-16:26 מאת Paul Gilmartin < 042bfe9c879d-dmarc-requ...@listserv.ua.edu>: > On Fri, 4 Aug 2023 10:02:29 +0300, Itschak Mugzach wrote: > >... > > - Substitution is more complex since you have several END options and > to > > ignore temporary datasets such as those starting with '&' > > What's an END option? (Example?) > > I need to submit an RCF that the JCL Ref. fails to clarify the effect of > substitutioh's resulting in a name beginning with "&" or "&" in the > equivalent JCL. as in: > // SET V1='' > // SET V2='&BAR' > //* > //STEP EXEC PGM=MYPGM > //DD1 DD DSN=,... > //DD2 DD DSN=,... > > > On Fri, 4 Aug 2023 11:58:13 +, Seymour J Metz wrote: > > >Senior moment - it was the disposition messages, not the substitution > messages, that got moved. For substitution the change was using a message > id. > > > I believe that substitution messages can be issued by the Converter but > disposition > messages only after step execution. > > And I find it an irritating omission that substitution messages do not > report > substitution of "&" for "&". > > -- > gil > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > -- ITschak Mugzach *|** IronSphere Platform* *|* *Information Security Continuous Monitoring for z/OS, x/Linux & IBM I **| z/VM coming soon * -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Accessing JCL SETs in Rexx
On Fri, 4 Aug 2023 10:02:29 +0300, Itschak Mugzach wrote: >... > - Substitution is more complex since you have several END options and to > ignore temporary datasets such as those starting with '&' What's an END option? (Example?) I need to submit an RCF that the JCL Ref. fails to clarify the effect of substitutioh's resulting in a name beginning with "&" or "&" in the equivalent JCL. as in: // SET V1='' // SET V2='&BAR' //* //STEP EXEC PGM=MYPGM //DD1 DD DSN=,... //DD2 DD DSN=,... On Fri, 4 Aug 2023 11:58:13 +, Seymour J Metz wrote: >Senior moment - it was the disposition messages, not the substitution >messages, that got moved. For substitution the change was using a message id. > I believe that substitution messages can be issued by the Converter but disposition messages only after step execution. And I find it an irritating omission that substitution messages do not report substitution of "&" for "&". -- gil -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Accessing JCL SETs in Rexx
Senior moment - it was the disposition messages, not the substitution messages, that got moved. For substitution the change was using a message id. -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of Seymour J Metz [sme...@gmu.edu] Sent: Friday, August 4, 2023 7:04 AM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: Accessing JCL SETs in Rexx Back in the bad old days, IBM showed the expansion immediately after the JCL. Alas, in MVS they chose to show it as a message in a separate JES dataset. Have they moved IEF653I to be inline since then? -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of Paul Gilmartin [042bfe9c879d-dmarc-requ...@listserv.ua.edu] Sent: Friday, August 4, 2023 12:02 AM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: Accessing JCL SETs in Rexx On Fri, 4 Aug 2023 03:32:01 +, Jon Perryman wrote: > > On Thursday, August 3, 2023 at 12:21:34 PM PDT, David Spiegel wrote: >> My intention is to read a Job and make sure that all datasets are available, >> but, the dsnames contain SET variables. > >The converter / interpreter will resolve variables. Submit the job with >typerun scan or hold should generate the information you want. > I've found SCAN to be almost worthless. It doesn't always report invalid data set names. >If you're not comfortable with control blocks, IPCS and dumps, then you can >use SDSF to extract the converted JCL albeit a little funky to process. > Is there a JES data set accessible by SDSF that shows symbols resolved? what does it show if symbol resolution extends a line beyond column 71? In fact, any continuation that splits a data set name can be "a little funky to process." -- gil -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Accessing JCL SETs in Rexx
after uncommenting the "trace ?r" or by preceding it with "EXECUTIL TS" Enjoy, Robert On Fri, 4 Aug 2023 at 11:04, Seymour J Metz wrote: > Back in the bad old days, IBM showed the expansion immediately after the > JCL. Alas, in MVS they chose to show it as a message in a separate JES > dataset. Have they moved IEF653I to be inline since then? > > > -- > Shmuel (Seymour J.) Metz > http://mason.gmu.edu/~smetz3 > > > From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf > of Paul Gilmartin [042bfe9c879d-dmarc-requ...@listserv.ua.edu] > Sent: Friday, August 4, 2023 12:02 AM > To: IBM-MAIN@LISTSERV.UA.EDU > Subject: Re: Accessing JCL SETs in Rexx > > On Fri, 4 Aug 2023 03:32:01 +, Jon Perryman wrote: > > > > On Thursday, August 3, 2023 at 12:21:34 PM PDT, David Spiegel wrote: > >> My intention is to read a Job and make sure that all datasets are > available, > >> but, the dsnames contain SET variables. > > > >The converter / interpreter will resolve variables. Submit the job with > typerun scan or hold should generate the information you want. > > > I've found SCAN to be almost worthless. It doesn't always report invalid > data set names. > > >If you're not comfortable with control blocks, IPCS and dumps, then you > can use SDSF to extract the converted JCL albeit a little funky to process. > > > Is there a JES data set accessible by SDSF that shows symbols resolved? > what does it show if symbol resolution extends a line beyond column 71? > > In fact, any continuation that splits a data set name can be "a little > funky > to process." > > -- > gil > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > -- Robert AH Prins robert(a)prino(d)org The hitchhiking grandfather <https://prino.neocities.org/index.html> Some REXX code for use on z/OS <https://prino.neocities.org/zOS/zOS-Tools.html> -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Accessing JCL SETs in Rexx
Back in the bad old days, IBM showed the expansion immediately after the JCL. Alas, in MVS they chose to show it as a message in a separate JES dataset. Have they moved IEF653I to be inline since then? -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of Paul Gilmartin [042bfe9c879d-dmarc-requ...@listserv.ua.edu] Sent: Friday, August 4, 2023 12:02 AM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: Accessing JCL SETs in Rexx On Fri, 4 Aug 2023 03:32:01 +, Jon Perryman wrote: > > On Thursday, August 3, 2023 at 12:21:34 PM PDT, David Spiegel wrote: >> My intention is to read a Job and make sure that all datasets are available, >> but, the dsnames contain SET variables. > >The converter / interpreter will resolve variables. Submit the job with >typerun scan or hold should generate the information you want. > I've found SCAN to be almost worthless. It doesn't always report invalid data set names. >If you're not comfortable with control blocks, IPCS and dumps, then you can >use SDSF to extract the converted JCL albeit a little funky to process. > Is there a JES data set accessible by SDSF that shows symbols resolved? what does it show if symbol resolution extends a line beyond column 71? In fact, any continuation that splits a data set name can be "a little funky to process." -- gil -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Accessing JCL SETs in Rexx
OK. If this is a scan and not run-time, you should be able to identify all types of variables: System variables (returned by MVSVAR(SYMDEF,xxx)), JCL SET commands, and PROC variables. This is the general case. If you only look at your private case that involves only JCL SET variables, you should look at a code like the one below (I have a complete solution but it is part of our IronSphere Breaking Lines product that performs code review). Some things to consider: - It will only work if the DD and DSNAME/PATH/DSN are on the same line. I usually make a DD a single line to solve this. - Substitution is more complex since you have several END options and to ignore temporary datasets such as those starting with '&&' - The reason I am using an index (SYMINDX) is to be able to access the variables directly and sequentially. Best, ITschak JCLSUBS: Parse Arg $Lib $Mem $Dsn = $lib'('$Mem')' If (Sysdsn($Lib) /= OK) Then Do Say 'MEMBER OR DATASET DOES NOT EXIST' Exit 8 End "Alloc f(JCLMEMBR) DA('"$Lib"("$Mem")') SHR" "ExecIO * DiskR JCLMEMBR (Stem JCL. Fini" SymIndx = 0 Do i = 1 to JCL.0 Jcl.i = Substr(Jcl.i,1,71) Parse Var JCL.i xName xTYpe XRest If (xType = 'SET') Then Do Interpret xrest Parse Var xRest xVar '=' xValue xVar = Strip(xVar) SymIndx = SymIndx + 1 Sym.SymIndx = xVar Sym.xVar = xValue SAy xVar '=' xValue End End Do i = 1 to JCL.0 Parse Var JCL.i xName xTYpe XRest If (xType /= 'DD') Then Do Iterate End xPos1 = WordPos('DSN=',xRest) xPos2 = WordPos('DSNAME=',xRest) xPos3 = WordPos('PATH=',xRest) If (xPos1 > 0) Then Do Parse Var xRest . 'SN=' xDsn ' ' . End If (xPos2 > 0) Then Do Parse Var xRest . 'SNName=' xDsn ' ' . End If (xPos3 > 0) Then Do Parse Var xRest . 'ATH=' xDsn ' ' . End xPos = Pos(',',xDsn) If (xPos > 0) Then Do Parse Var xDsn xdsn ',' . End Call Substitute End Return *| **Itschak Mugzach | Director | SecuriTeam Software **|** IronSphere Platform* *|* *Information Security Continuous Monitoring for Z/OS, zLinux and IBM I **| * *|* *Email**: i_mugz...@securiteam.co.il **|* *Mob**: +972 522 986404 **|* *Skype**: ItschakMugzach **|* *Web**: www.Securiteam.co.il **|* On Fri, Aug 4, 2023 at 12:58 AM David Spiegel < 0468385049d1-dmarc-requ...@listserv.ua.edu> wrote: > Hi R'Itschak AMVS"H, > Yes, it is a scan. > The purpose of the scan is to ensure that my jobs which implement a > Middleware upgrade have a good chance of succeeding. > These jobs are SUBMITd at 02:00 when the adrenaline is flowing, Teams > messages are non-stop and the stress level is through the roof. > The last thing I want to do is start looking for missing Datasets and/or > RENAME conflicts. > > Shabbat Shalom > > Regards, > David > > From: IBM Mainframe Discussion List on behalf > of ITschak Mugzach > Sent: Thursday, August 3, 2023 3:54:18 PM > To: IBM-MAIN@LISTSERV.UA.EDU > Subject: Re: Accessing JCL SETs in Rexx > > David, > > So this is not a run time issue, but a scan of a jcl before submition? > > ITschak Mugzach > *|** IronSphere Platform* *|* *Information Security Continuous Monitoring > for z/OS, x/Linux & IBM I **| z/VM coming soon * > > > > > On Thu, Aug 3, 2023 at 10:21 PM David Spiegel < > 0468385049d1-dmarc-requ...@listserv.ua.edu> wrote: > > > Hi Gil, > > My intention is to read a Job and make sure that all datasets are > > available, but, the dsnames contain SET variables. > > > > Regards, > > David > > > > Sent from my Bell Samsung device over Canada’s largest network. > > ________________ > > From: IBM Mainframe Discussion List on behalf > > of Paul Gilmartin <042bfe9c879d-dmarc-requ...@listserv.ua.edu> > > Sent: Thursday, August 3, 2023 1:58:20 PM > > To: IBM-MAIN@LISTSERV.UA.EDU > > Subject: Re: Accessing JCL SETs in Rexx > > > > On Thu, 3 Aug 2023 17:11:08 +, David Spiegel wrote: > > > > > >Does anyone know how to access the JCL SET variables from Rexx. > > > > > What are your constraints? I could envision invoking your REXX with > > BPXWUNIX or BPXBATCH and passing your symbols in > > //STDPARM DD *,SYMBOLS=JCLONLY > > ... > > > > -- > > gil > > > > -- > > For IBM-MAIN subscribe / signoff / archive access instructions, > > send ema
Re: Accessing JCL SETs in Rexx
On Thursday, August 3, 2023 at 09:02:39 PM PDT, Paul Gilmartin wrote: > I've found SCAN to be almost worthless. It doesn't always report invalid > data set names. I don't think that David cares about the value of TYPERUN=SCAN to you. If he uses it to solve his problem, then it is of great value to him. > Is there a JES data set accessible by SDSF that shows symbols resolved? Someone with z/OS access can quickly verify. I believe it's just after JESJOBLG which shows everything including proc expansion and I believe variable substitution. > what does it show if symbol resolution extends a line beyond column 71? Someone with z/OS access can quickly verify. Create an inline proc that has a variable with 20 or so characters and a DD where the DSN= starts in column 55. > In fact, any continuation that splits a data set name can be "a little funky > to process." This would not be my first choice but it's a solution that meets David's requirements of being processed by REXX and being free. If he understands the pattern, then he can program for it.. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Accessing JCL SETs in Rexx
On Fri, 4 Aug 2023 03:32:01 +, Jon Perryman wrote: > > On Thursday, August 3, 2023 at 12:21:34 PM PDT, David Spiegel wrote: >> My intention is to read a Job and make sure that all datasets are available, >> but, the dsnames contain SET variables. > >The converter / interpreter will resolve variables. Submit the job with >typerun scan or hold should generate the information you want. > I've found SCAN to be almost worthless. It doesn't always report invalid data set names. >If you're not comfortable with control blocks, IPCS and dumps, then you can >use SDSF to extract the converted JCL albeit a little funky to process. > Is there a JES data set accessible by SDSF that shows symbols resolved? what does it show if symbol resolution extends a line beyond column 71? In fact, any continuation that splits a data set name can be "a little funky to process." -- gil -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Accessing JCL SETs in Rexx
>/* Doesn't that result in "SYSIN DD * GENERATED STATEMENT"? Gil, NO. PS: Please ignore the previous email where I was responding to the wrong quote. Thanks, Kolusu -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Accessing JCL SETs in Rexx
>Does this work for symbols that are NOT exported? Gil, NO. Thanks, Kolusu -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Accessing JCL SETs in Rexx
> On Thursday, August 3, 2023 at 12:21:34 PM PDT, David Spiegel wrote: > My intention is to read a Job and make sure that all datasets are available, > but, the dsnames contain SET variables. The converter / interpreter will resolve variables. Submit the job with typerun scan or hold should generate the information you want. If you're not comfortable with control blocks, IPCS and dumps, then you can use SDSF to extract the converted JCL albeit a little funky to process. I can't remember which control blocks you need to run. If you are more skilled, you could take a dump during the first step and search the storage for the job card. I would expect a CB eyecatcher which you should be able to find in the z/OS control blocks manual. From there, you find the pointers in the header. Keep chasing CB chains until you find one that is usable. Since you want to use REXX, then find the chain that either originates from PSAAOLD (your ascb) or PSATOLD (your TCB). Add a step to the JCL that runs your REXX and have it abend if a dataset is missing otherwise let it run the job. Realize that IF statements may cause you problems. You will also want to ignore datasets that are allocated in the job. On Thursday, August 3, 2023 at 12:21:34 PM PDT, David Spiegel <0468385049d1-dmarc-requ...@listserv.ua.edu> wrote: Hi Gil, My intention is to read a Job and make sure that all datasets are available, but, the dsnames contain SET variables. Regards, David Sent from my Bell Samsung device over Canada’s largest network. From: IBM Mainframe Discussion List on behalf of Paul Gilmartin <042bfe9c879d-dmarc-requ...@listserv.ua.edu> Sent: Thursday, August 3, 2023 1:58:20 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: Accessing JCL SETs in Rexx On Thu, 3 Aug 2023 17:11:08 +, David Spiegel wrote: > >Does anyone know how to access the JCL SET variables from Rexx. > What are your constraints? I could envision invoking your REXX with BPXWUNIX or BPXBATCH and passing your symbols in //STDPARM DD *,SYMBOLS=JCLONLY ... -- gil -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Accessing JCL SETs in Rexx
On Fri, 4 Aug 2023 02:32:02 +, Robert Garrett wrote: >There are no native REXX functions or easily callable services you can use to >get your hands on them. However, if you're handy with Assembler you could >write your own callable service to get them. The service you need in order to >get access to JCL symbols is invoked via the IEFSJSYM macro. > Will it return JCL symbols of a job that hasn't been submitted, or of a job other than the requesting job? >I once wrote a CICS utility program to fetch both system symbols and JCL SET >symbols while running as a CICS task. -- gil -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Accessing JCL SETs in Rexx
There are no native REXX functions or easily callable services you can use to get your hands on them. However, if you're handy with Assembler you could write your own callable service to get them. The service you need in order to get access to JCL symbols is invoked via the IEFSJSYM macro. I once wrote a CICS utility program to fetch both system symbols and JCL SET symbols while running as a CICS task. Cheers, Robert -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Accessing JCL SETs in Rexx
On Fri, 4 Aug 2023 00:02:06 +, Sri h Kolusu wrote: > >Does this work for symbols that are NOT exported? > >// SET HLQ= >// ... >//SYMEX EXEC PGM=COZBATCH >/* Doesn't that result in "SYSIN DD * GENERATED STATEMENT"? >//STDIN DD * >ENV | GREP "JES_" >/* ITYM 'env | grep "JES_"' Is the requester OK with requiring very useful third-party software? But I believe the OP wanted to scan the "equivalent JCL" in a member not submitted. -- gil -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Accessing JCL SETs in Rexx
Kirk, Does this work for symbols that are NOT exported? For ex: // SET HLQ= // SET MLQ=SOME // SET TLQ=DSN // SET FLQ=DUMP // SET MYDSN= // SET MYVOL=SYS001 // SET DCLAS=EDCCOMPR // SET SCLAS=STANDARD // SET PRI=5000 // SET SEC=2000 // SET VU=3 // SET DV=SYSDA // SET AU=TRK //* //SYMEX EXEC PGM=COZBATCH //SYSMDUMP DD DSN=, //DISP=(NEW,CATLG), //DATACLAS=,STORCLAS=,EATTR=OPT, //UNIT=(,),SPACE=(,(,),RLSE), //DCB=(RECFM=FBS,LRECL=4160,BLKSIZE=24960) /* //STDIN DD * ENV | GREP "JES_" /* Thanks, Kolusu -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Accessing JCL SETs in Rexx
I'm not sure whether that's the best approach, but the __environment stem variable would certainly provide easy access. From: IBM Mainframe Discussion List on behalf of Paul Gilmartin <042bfe9c879d-dmarc-requ...@listserv.ua.edu> Sent: Thursday, August 3, 2023 2:39 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: Accessing JCL SETs in Rexx On Thu, 3 Aug 2023 17:48:56 +, Seymour J Metz wrote: >The short answer is use ADDRESS LINKMVS. It's probably easier to write a >REXX-aware function in HLASM. > I have an Idea: Exported JCL symbols should automatically be available under OMVS as environment variables. -- gil -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Accessing JCL SETs in Rexx
Hi R'Itschak AMVS"H, Yes, it is a scan. The purpose of the scan is to ensure that my jobs which implement a Middleware upgrade have a good chance of succeeding. These jobs are SUBMITd at 02:00 when the adrenaline is flowing, Teams messages are non-stop and the stress level is through the roof. The last thing I want to do is start looking for missing Datasets and/or RENAME conflicts. Shabbat Shalom Regards, David From: IBM Mainframe Discussion List on behalf of ITschak Mugzach Sent: Thursday, August 3, 2023 3:54:18 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: Accessing JCL SETs in Rexx David, So this is not a run time issue, but a scan of a jcl before submition? ITschak Mugzach *|** IronSphere Platform* *|* *Information Security Continuous Monitoring for z/OS, x/Linux & IBM I **| z/VM coming soon * On Thu, Aug 3, 2023 at 10:21 PM David Spiegel < 0468385049d1-dmarc-requ...@listserv.ua.edu> wrote: > Hi Gil, > My intention is to read a Job and make sure that all datasets are > available, but, the dsnames contain SET variables. > > Regards, > David > > Sent from my Bell Samsung device over Canada’s largest network. > > From: IBM Mainframe Discussion List on behalf > of Paul Gilmartin <042bfe9c879d-dmarc-requ...@listserv.ua.edu> > Sent: Thursday, August 3, 2023 1:58:20 PM > To: IBM-MAIN@LISTSERV.UA.EDU > Subject: Re: Accessing JCL SETs in Rexx > > On Thu, 3 Aug 2023 17:11:08 +, David Spiegel wrote: > > > >Does anyone know how to access the JCL SET variables from Rexx. > > > What are your constraints? I could envision invoking your REXX with > BPXWUNIX or BPXBATCH and passing your symbols in > //STDPARM DD *,SYMBOLS=JCLONLY > ... > > -- > gil > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Accessing JCL SETs in REXX
Since REXX became available I have not written much assembler. REXX will read anything literly Steve -Original Message- From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf Of Kirk Wolf Sent: Thursday, August 3, 2023 3:11 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: Accessing JCL SETs in Rexx Great idea! // EXPORT SYMLIST=(MYDSN,MYVOL) // SET MYDSN=MYID.SOME.DSN // SET MYVOL=SYS001 //* //SYMEX EXEC PGM=COZBATCH //STDIN DD * env | grep "JES_" //* results: JES_SYS_CORR_CURRJOB=S434DTLZOS01CC27C5EA...: JES_MYDSN=MYID.SOME.DSN JES_MYVOL=SYS001 See Example #14: https://coztoolkit.com/docs/cozbatch/examples.html Kirk Wolf Dovetailed Technologies https://coztoolkit.com On Thu, Aug 3, 2023, at 1:39 PM, Paul Gilmartin wrote: > On Thu, 3 Aug 2023 17:48:56 +, Seymour J Metz wrote: > > >The short answer is use ADDRESS LINKMVS. It's probably easier to write a REXX-aware function in HLASM. > > > I have an Idea: Exported JCL symbols should automatically be available > under OMVS as environment variables. > > -- > gil > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Accessing JCL SETs in Rexx
Great idea! // EXPORT SYMLIST=(MYDSN,MYVOL) // SET MYDSN=MYID.SOME.DSN // SET MYVOL=SYS001 //* //SYMEX EXEC PGM=COZBATCH //STDIN DD * env | grep "JES_" //* results: JES_SYS_CORR_CURRJOB=S434DTLZOS01CC27C5EA...: JES_MYDSN=MYID.SOME.DSN JES_MYVOL=SYS001 See Example #14: https://coztoolkit.com/docs/cozbatch/examples.html Kirk Wolf Dovetailed Technologies https://coztoolkit.com On Thu, Aug 3, 2023, at 1:39 PM, Paul Gilmartin wrote: > On Thu, 3 Aug 2023 17:48:56 +, Seymour J Metz wrote: > > >The short answer is use ADDRESS LINKMVS. It's probably easier to write a > >REXX-aware function in HLASM. > > > I have an Idea: Exported JCL symbols should automatically be available > under OMVS as environment variables. > > -- > gil > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Accessing JCL SETs in Rexx
David, So this is not a run time issue, but a scan of a jcl before submition? ITschak Mugzach *|** IronSphere Platform* *|* *Information Security Continuous Monitoring for z/OS, x/Linux & IBM I **| z/VM coming soon * On Thu, Aug 3, 2023 at 10:21 PM David Spiegel < 0468385049d1-dmarc-requ...@listserv.ua.edu> wrote: > Hi Gil, > My intention is to read a Job and make sure that all datasets are > available, but, the dsnames contain SET variables. > > Regards, > David > > Sent from my Bell Samsung device over Canada’s largest network. > > From: IBM Mainframe Discussion List on behalf > of Paul Gilmartin <042bfe9c879d-dmarc-requ...@listserv.ua.edu> > Sent: Thursday, August 3, 2023 1:58:20 PM > To: IBM-MAIN@LISTSERV.UA.EDU > Subject: Re: Accessing JCL SETs in Rexx > > On Thu, 3 Aug 2023 17:11:08 +, David Spiegel wrote: > > > >Does anyone know how to access the JCL SET variables from Rexx. > > > What are your constraints? I could envision invoking your REXX with > BPXWUNIX or BPXBATCH and passing your symbols in > //STDPARM DD *,SYMBOLS=JCLONLY > ... > > -- > gil > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Accessing JCL SETs in Rexx
On Thu, 3 Aug 2023 19:21:27 +, David Spiegel wrote: > >My intention is to read a Job and make sure that all datasets are available, >but, the dsnames contain SET variables. > By "read a Job" do you mean that JCL resides in a file or PDS member and you want to read that JCL with EXECIO or linein() and identify all data set names in equivalent JCL having substituted values in its SET statements? I doubt that you can do that without writing your own parser/interpreter. But perhaps TYPRUN=HOLD and scan the JESJCL with the SDSF API. -- gil -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Accessing JCL SETs in Rexx
Hi Gil, My intention is to read a Job and make sure that all datasets are available, but, the dsnames contain SET variables. Regards, David Sent from my Bell Samsung device over Canada’s largest network. From: IBM Mainframe Discussion List on behalf of Paul Gilmartin <042bfe9c879d-dmarc-requ...@listserv.ua.edu> Sent: Thursday, August 3, 2023 1:58:20 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: Accessing JCL SETs in Rexx On Thu, 3 Aug 2023 17:11:08 +, David Spiegel wrote: > >Does anyone know how to access the JCL SET variables from Rexx. > What are your constraints? I could envision invoking your REXX with BPXWUNIX or BPXBATCH and passing your symbols in //STDPARM DD *,SYMBOLS=JCLONLY ... -- gil -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Accessing JCL SETs in Rexx
On Thu, 3 Aug 2023 17:48:56 +, Seymour J Metz wrote: >The short answer is use ADDRESS LINKMVS. It's probably easier to write a >REXX-aware function in HLASM. > I have an Idea: Exported JCL symbols should automatically be available under OMVS as environment variables. -- gil -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Accessing JCL SETs in Rexx
I think the easiest way is to pass them as parameters to the REXX routine. Alternatively specify them in an in-stream data set and use a DD statement that specifies SYMBOLS=JCLONLY. Lennie Dymoke-Bradshaw https://rsclweb.com 'Dance like no one is watching. Encrypt like everyone is.' -Original Message- From: IBM Mainframe Discussion List On Behalf Of David Spiegel Sent: 03 August 2023 18:11 To: IBM-MAIN@LISTSERV.UA.EDU Subject: Accessing JCL SETs in Rexx Hi, Does anyone know how to access the JCL SET variables from Rexx. Thanks in advance, David -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Accessing JCL SETs in Rexx
On Thu, 3 Aug 2023 17:11:08 +, David Spiegel wrote: > >Does anyone know how to access the JCL SET variables from Rexx. > What are your constraints? I could envision invoking your REXX with BPXWUNIX or BPXBATCH and passing your symbols in //STDPARM DD *,SYMBOLS=JCLONLY ... -- gil -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Accessing JCL SETs in Rexx
The short answer is use ADDRESS LINKMVS. It's probably easier to write a REXX-aware function in HLASM. -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of David Spiegel [0468385049d1-dmarc-requ...@listserv.ua.edu] Sent: Thursday, August 3, 2023 1:11 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Accessing JCL SETs in Rexx Hi, Does anyone know how to access the JCL SET variables from Rexx. Thanks in advance, David -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Accessing JCL SETs in Rexx
I tried MVSVAR(SYMDEF,xxx). It does not do the job. If this is worth the effort, try reading the JESJCL spool dataset using ISFEXEC. ITschak ITschak Mugzach *|** IronSphere Platform* *|* *Information Security Continuous Monitoring for z/OS, x/Linux & IBM I **| z/VM coming soon * On Thu, Aug 3, 2023 at 8:11 PM David Spiegel < 0468385049d1-dmarc-requ...@listserv.ua.edu> wrote: > Hi, > Does anyone know how to access the JCL SET variables from Rexx. > > Thanks in advance, > David > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN