Re: JCL Question
R.Skorupka wrote: I dare to disagree. Completely. Feel free to do that. Search the archives. My reply is for those who don't have those automation software. 1. ControlM (and others) did that despite of the reasons above. Agreed. I'm indeed using those %%variables to generate datasets and reports for my RACF audit reports. Can't already live without those %%variables. :-D 2. Scope of the facilities offered by %%variables is much wider than system variables which are available in STC, but not in batch. Some of the facilities are completely unrelated to the considerations above. 3. ControlM do offer rich set of datetime variables and functions, so you have ordering date, execution date etc. Anything you want. With no ambiguity. Here I agree with you... ;-D But not every one has that luxury. This is why this thread originally started. Groete / Greetings Elardus Engelbrecht -- 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
Re: JCL Question
The trick is to run a process at 23:59:59 everyday to update the MCDATE member in a proclib that is in your JES2 proclib concatenation. We've done this for years and it works well. This is exactly what we do at our shop. In case the user needs to use variables in SYSIN DD type datasets, then we exploit EZACFSM1. Walter Marguccio z/OS Systems Programmer BELENUS LOB Informatic GmbH Munich - Germany -- 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
Re: JCL Question
W dniu 2011-07-13 14:52, McKown, John pisze: I'd likely use JES exit 2 to insert // SET DATE=... // SET TIME=... and so on into the JCL stream immediately after the JOB card. And I like Job Scheduler Utilities for such purposes. For example ControlM has %%variables, with strong support for date, time, day of week, days since, etc. but not only. And you can do some simple calculations, string operations, IF, CASE operators, etc. etc. That makes any homegrown tricks much much less sexy. I believe that competition products have similar faicilities. I believe this is main reason why JCL haven't been enhanced to have such facilities. BIG customers - those which IBM listen to - already have such facilities (in Job Scheduler) and have no reason to push IBM. I also think the above is also reason for uchanged limit for GDG - 255. -- Radoslaw Skorupka Lodz, Poland -- Tre tej wiadomoci moe zawiera informacje prawnie chronione Banku przeznaczone wycznie do uytku subowego adresata. Odbiorc moe by jedynie jej adresat z wyczeniem dostpu osób trzecich. Jeeli nie jeste adresatem niniejszej wiadomoci lub pracownikiem upowanionym do jej przekazania adresatowi, informujemy, e jej rozpowszechnianie, kopiowanie, rozprowadzanie lub inne dziaanie o podobnym charakterze jest prawnie zabronione i moe by karalne. Jeeli otrzymae t wiadomo omykowo, prosimy niezwocznie zawiadomi nadawc wysyajc odpowied oraz trwale usun t wiadomo wczajc w to wszelkie jej kopie wydrukowane lub zapisane na dysku. This e-mail may contain legally privileged information of the Bank and is intended solely for business use of the addressee. This e-mail may only be received by the addressee and may not be disclosed to any third parties. If you are not the intended addressee of this e-mail or the employee authorised to forward it to the addressee, be advised that any dissemination, copying, distribution or any other similar activity is legally prohibited and may be punishable. If you received this e-mail by mistake please advise the sender immediately by using the reply facility in your e-mail software and delete permanently this e-mail including any copies of it either printed or saved to hard drive. BRE Bank SA, 00-950 Warszawa, ul. Senatorska 18, tel. +48 (22) 829 00 00, fax +48 (22) 829 00 33, e-mail: i...@brebank.pl Sd Rejonowy dla m. st. Warszawy XII Wydzia Gospodarczy Krajowego Rejestru Sdowego, nr rejestru przedsibiorców KRS 025237, NIP: 526-021-50-88. Wedug stanu na dzie 01.01.2011 r. kapita zakadowy BRE Banku SA (w caoci wpacony) wynosi 168.346.696 zotych. -- 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
Re: JCL Question
In cajtoo5-fxq7vkwj3yayw0ncrfgbqhdzaxqjj76mzxsngm_e...@mail.gmail.com, on 07/13/2011 at 09:04 PM, Mike Schwab mike.a.sch...@gmail.com said: I have done an IEBGENER to a INTRDR to run the same job until I broke the loop. That's not iteration in JCL. -- Shmuel (Seymour J.) Metz, SysProg and JOAT ISO position; see http://patriot.net/~shmuel/resume/brief.html We don't care. We don't have to care, we're Congress. (S877: The Shut up and Eat Your spam act of 2003) -- 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
Re: JCL Question
R. Skorupka wrote: I believe this is main reason why JCL haven't been enhanced to have such facilities. BIG customers - those which IBM listen to - already have such facilities (in Job Scheduler) and have no reason to push IBM. Partly true, but the actual reason has been stated many times here on IBM-MAIN: Reason - where and when do you want variables substituted? On the system where JCL is submitted or on the system where the JCL is to be executed? Before you yell at me that date/time is universal on any machine, take in account the local time of the machine where you want date/time substitution... About when - at submission or at job start or what? Who do you want the actual work to be done: JES2 at interpretation or when the resource manager gets the DD statements? Forget for now about the possibility that the date/time variables are substituted in next day or week... :-) Also forget for a moment about possible mixup of local times and/or Zulu time (greenwich time) ;-D Groete / Greetings Elardus Engelbrecht -- 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
Re: JCL Question
Indeed that becomes important. When I was working on a 200 ( and growing) node jesx/rscs/ power systems it became extremely complex as sometimes when a job floated it became let's say difficult to figure out. When it became fun trying to contact the various tech people to find out about the System it came through. Add to that some of the techies were let's say less than fully informed you could end up chasing your tail. Let me assure you that there is just not one way to make everyone happy. Ed Sent from my iPad On Jul 14, 2011, at 12:56 PM, Elardus Engelbrecht elardus.engelbre...@sita.co.za wrote: R. Skorupka wrote: I believe this is main reason why JCL haven't been enhanced to have such facilities. BIG customers - those which IBM listen to - already have such facilities (in Job Scheduler) and have no reason to push IBM. Partly true, but the actual reason has been stated many times here on IBM-MAIN: Reason - where and when do you want variables substituted? On the system where JCL is submitted or on the system where the JCL is to be executed? Before you yell at me that date/time is universal on any machine, take in account the local time of the machine where you want date/time substitution... About when - at submission or at job start or what? Who do you want the actual work to be done: JES2 at interpretation or when the resource manager gets the DD statements? Forget for now about the possibility that the date/time variables are substituted in next day or week... :-) Also forget for a moment about possible mixup of local times and/or Zulu time (greenwich time) ;-D Groete / Greetings Elardus Engelbrecht -- 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 -- 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
Re: JCL Question
W dniu 2011-07-14 19:56, Elardus Engelbrecht pisze: R. Skorupka wrote: I believe this is main reason why JCL haven't been enhanced to have such facilities. BIG customers - those which IBM listen to - already have such facilities (in Job Scheduler) and have no reason to push IBM. Partly true, but the actual reason has been stated many times here on IBM-MAIN: Reason - where and when do you want variables substituted? On the system where JCL is submitted or on the system where the JCL is to be executed? Before you yell at me that date/time is universal on any machine, take in account the local time of the machine where you want date/time substitution... About when - at submission or at job start or what? Who do you want the actual work to be done: JES2 at interpretation or when the resource manager gets the DD statements? Forget for now about the possibility that the date/time variables are substituted in next day or week... :-) Also forget for a moment about possible mixup of local times and/or Zulu time (greenwich time) ;-D I dare to disagree. Completely. 1. ControlM (and others) did that despite of the reasons above. 2. Scope of the facilities offered by %%variables is much wider than system variables which are available in STC, but not in batch. Some of the facilities are completely unrelated to the considerations above. 3. ControlM do offer rich set of datetime variables and functions, so you have ordering date, execution date etc. Anything you want. With no ambiguity. 4. What about GDG 365 ??? %$%! Regards -- Radoslaw Skorupka Lodz, Poland P.S. I'm not selling ControlM, the above is not advertisement. shameless plug I'm pretty sure that me and my coleague are very first users of CtM in Poland, possibly first users of any batch scheduler in our country g It was BooleBabbage branded then... /shameless plug -- Tre tej wiadomoci moe zawiera informacje prawnie chronione Banku przeznaczone wycznie do uytku subowego adresata. Odbiorc moe by jedynie jej adresat z wyczeniem dostpu osób trzecich. Jeeli nie jeste adresatem niniejszej wiadomoci lub pracownikiem upowanionym do jej przekazania adresatowi, informujemy, e jej rozpowszechnianie, kopiowanie, rozprowadzanie lub inne dziaanie o podobnym charakterze jest prawnie zabronione i moe by karalne. Jeeli otrzymae t wiadomo omykowo, prosimy niezwocznie zawiadomi nadawc wysyajc odpowied oraz trwale usun t wiadomo wczajc w to wszelkie jej kopie wydrukowane lub zapisane na dysku. This e-mail may contain legally privileged information of the Bank and is intended solely for business use of the addressee. This e-mail may only be received by the addressee and may not be disclosed to any third parties. If you are not the intended addressee of this e-mail or the employee authorised to forward it to the addressee, be advised that any dissemination, copying, distribution or any other similar activity is legally prohibited and may be punishable. If you received this e-mail by mistake please advise the sender immediately by using the reply facility in your e-mail software and delete permanently this e-mail including any copies of it either printed or saved to hard drive. BRE Bank SA, 00-950 Warszawa, ul. Senatorska 18, tel. +48 (22) 829 00 00, fax +48 (22) 829 00 33, e-mail: i...@brebank.pl Sd Rejonowy dla m. st. Warszawy XII Wydzia Gospodarczy Krajowego Rejestru Sdowego, nr rejestru przedsibiorców KRS 025237, NIP: 526-021-50-88. Wedug stanu na dzie 01.01.2011 r. kapita zakadowy BRE Banku SA (w caoci wpacony) wynosi 168.346.696 zotych. -- 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
Re: JCL Question
I have a UJV exit that we market which allows you to create variables for BATCH jobs as well as STC's. At our customer sites we use it to control the DSN's of the backups and hundreds of other jobs. The users also take advantage of the capabilities, (the ones that know how to read the manual :)). You can license ours, or you can download a very similar one from www.cbttape.org/ file 573 that has a few less capabilities (but should be able to do the below), but is free. i.e. // SET BKPDSN='DZYEAR.ZMONTH.ZDAY..TZTIME.' //BACKUP00 EXEC PGM=ADRDSSU,REGION=0M //SYSPRINT DD SYSOUT=* //DISK0DD UNIT=3390,DISP=SHR,VOL=SER=FC6C00 //TAPE0DD UNIT=3480,DISP=(,CATLG),LABEL=(1,SL), //DSN=SYSTAPE.Z13DL1.BKPDSN,VOL=(,RETAIN,,10) ends up with a DSN (assuming the job runs today at 22:59) of: SYSTAPE.Z13DL1.D110712.T2259 There are literally hundreds (well, maybe a lot is a better term) of JCL variables that you can create using the exit and you are not limited to running as a Started Task for any of them. Some people don't like using exits, I personally feel that a good exit is worth it's weight in gold. Eventually IBM will come around and support doing this natively, and (currently) there are a lot of reasons why they can't, but there is no reason you shouldn't do it on your own until then. Brian -- 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
Re: JCL Question
W dniu 2011-07-12 21:36, Ted MacNEIL pisze: I disagree. JCL meets all criteria to be a programming language. It doesn't do everything, but what language does? Watch the name: JOB CONTROL language. In fact there is no big value in JCL classification, especially as there is no single exact definition of programming language. Last, but not least: let's imagine we would work out the classification. And ? But, it is more complex than channel programmes, and they're considered a programming language. You compare channel programs to programming language. Not to mention that channel programs are functionally similar to SCSI commands. -- Radoslaw Skorupka Lodz, Poland -- Tre tej wiadomoci moe zawiera informacje prawnie chronione Banku przeznaczone wycznie do uytku subowego adresata. Odbiorc moe by jedynie jej adresat z wyczeniem dostpu osób trzecich. Jeeli nie jeste adresatem niniejszej wiadomoci lub pracownikiem upowanionym do jej przekazania adresatowi, informujemy, e jej rozpowszechnianie, kopiowanie, rozprowadzanie lub inne dziaanie o podobnym charakterze jest prawnie zabronione i moe by karalne. Jeeli otrzymae t wiadomo omykowo, prosimy niezwocznie zawiadomi nadawc wysyajc odpowied oraz trwale usun t wiadomo wczajc w to wszelkie jej kopie wydrukowane lub zapisane na dysku. This e-mail may contain legally privileged information of the Bank and is intended solely for business use of the addressee. This e-mail may only be received by the addressee and may not be disclosed to any third parties. If you are not the intended addressee of this e-mail or the employee authorised to forward it to the addressee, be advised that any dissemination, copying, distribution or any other similar activity is legally prohibited and may be punishable. If you received this e-mail by mistake please advise the sender immediately by using the reply facility in your e-mail software and delete permanently this e-mail including any copies of it either printed or saved to hard drive. BRE Bank SA, 00-950 Warszawa, ul. Senatorska 18, tel. +48 (22) 829 00 00, fax +48 (22) 829 00 33, e-mail: i...@brebank.pl Sd Rejonowy dla m. st. Warszawy XII Wydzia Gospodarczy Krajowego Rejestru Sdowego, nr rejestru przedsibiorców KRS 025237, NIP: 526-021-50-88. Wedug stanu na dzie 01.01.2011 r. kapita zakadowy BRE Banku SA (w caoci wpacony) wynosi 168.346.696 zotych. -- 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
Re: JCL Question
On Wed, 13 Jul 2011 10:28:33 +0200 R.S. r.skoru...@bremultibank.com.pl wrote: :W dniu 2011-07-12 21:36, Ted MacNEIL pisze: : I disagree. : JCL meets all criteria to be a programming language. : It doesn't do everything, but what language does? :Watch the name: JOB CONTROL language. How many legs does a dog have, if you call a tail a leg? Four - just because you call a tail a leg does not make it a leg. :In fact there is no big value in JCL classification, especially as there :is no single exact definition of programming language. Last, but not :least: let's imagine we would work out the classification. And ? : But, it is more complex than channel programmes, and they're considered a programming language. :You compare channel programs to programming language. Not to mention :that channel programs are functionally similar to SCSI commands. -- Binyamin Dissen bdis...@dissensoftware.com http://www.dissensoftware.com Director, Dissen Software, Bar Grill - Israel Should you use the mailblocks package and expect a response from me, you should preauthorize the dissensoftware.com domain. I very rarely bother responding to challenge/response systems, especially those from irresponsible companies. -- 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
Re: JCL Question
W dniu 2011-07-13 10:44, Binyamin Dissen pisze: On Wed, 13 Jul 2011 10:28:33 +0200 R.S.r.skoru...@bremultibank.com.pl wrote: :W dniu 2011-07-12 21:36, Ted MacNEIL pisze: : I disagree. : JCL meets all criteria to be a programming language. : It doesn't do everything, but what language does? :Watch the name: JOB CONTROL language. How many legs does a dog have, if you call a tail a leg? Four - just because you call a tail a leg does not make it a leg. No, in general it is matter of definition. My English is poor, but let me present another example, as off topic as dog's one: A car. In my country, Combi (Wagon) car is named in folders as 5-doors car. Hatchback is also 5-doors or 3-doors. Does anyone use the tailgate as a doors? Definition of leg is common and quite well specified/understood. For ages. Definition of programming language is not and IMHO it could evolve significantly during last 40 years. Last, but not least: since we talk about PROGRAMMING language that means there are non-programming (but computer-related) languages. -- Radoslaw Skorupka Lodz, Poland -- Tre tej wiadomoci moe zawiera informacje prawnie chronione Banku przeznaczone wycznie do uytku subowego adresata. Odbiorc moe by jedynie jej adresat z wyczeniem dostpu osób trzecich. Jeeli nie jeste adresatem niniejszej wiadomoci lub pracownikiem upowanionym do jej przekazania adresatowi, informujemy, e jej rozpowszechnianie, kopiowanie, rozprowadzanie lub inne dziaanie o podobnym charakterze jest prawnie zabronione i moe by karalne. Jeeli otrzymae t wiadomo omykowo, prosimy niezwocznie zawiadomi nadawc wysyajc odpowied oraz trwale usun t wiadomo wczajc w to wszelkie jej kopie wydrukowane lub zapisane na dysku. This e-mail may contain legally privileged information of the Bank and is intended solely for business use of the addressee. This e-mail may only be received by the addressee and may not be disclosed to any third parties. If you are not the intended addressee of this e-mail or the employee authorised to forward it to the addressee, be advised that any dissemination, copying, distribution or any other similar activity is legally prohibited and may be punishable. If you received this e-mail by mistake please advise the sender immediately by using the reply facility in your e-mail software and delete permanently this e-mail including any copies of it either printed or saved to hard drive. BRE Bank SA, 00-950 Warszawa, ul. Senatorska 18, tel. +48 (22) 829 00 00, fax +48 (22) 829 00 33, e-mail: i...@brebank.pl Sd Rejonowy dla m. st. Warszawy XII Wydzia Gospodarczy Krajowego Rejestru Sdowego, nr rejestru przedsibiorców KRS 025237, NIP: 526-021-50-88. Wedug stanu na dzie 01.01.2011 r. kapita zakadowy BRE Banku SA (w caoci wpacony) wynosi 168.346.696 zotych. -- 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
Re: JCL Question
I'd likely use JES exit 2 to insert // SET DATE=... // SET TIME=... and so on into the JCL stream immediately after the JOB card. -- John McKown Systems Engineer IV IT Administrative Services Group HealthMarkets(r) 9151 Boulevard 26 * N. Richland Hills * TX 76010 (817) 255-3225 phone * 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 -Original Message- From: IBM Mainframe Discussion List [mailto:IBM-MAIN@bama.ua.edu] On Behalf Of Brian Westerman Sent: Wednesday, July 13, 2011 1:00 AM To: IBM-MAIN@bama.ua.edu Subject: Re: JCL Question I have a UJV exit that we market which allows you to create variables for BATCH jobs as well as STC's. At our customer sites we use it to control the DSN's of the backups and hundreds of other jobs. The users also take advantage of the capabilities, (the ones that know how to read the manual :)). You can license ours, or you can download a very similar one from www.cbttape.org/ file 573 that has a few less capabilities (but should be able to do the below), but is free. i.e. // SET BKPDSN='DZYEAR.ZMONTH.ZDAY..TZTIME.' //BACKUP00 EXEC PGM=ADRDSSU,REGION=0M //SYSPRINT DD SYSOUT=* //DISK0DD UNIT=3390,DISP=SHR,VOL=SER=FC6C00 //TAPE0DD UNIT=3480,DISP=(,CATLG),LABEL=(1,SL), //DSN=SYSTAPE.Z13DL1.BKPDSN,VOL=(,RETAIN,,10) ends up with a DSN (assuming the job runs today at 22:59) of: SYSTAPE.Z13DL1.D110712.T2259 There are literally hundreds (well, maybe a lot is a better term) of JCL variables that you can create using the exit and you are not limited to running as a Started Task for any of them. Some people don't like using exits, I personally feel that a good exit is worth it's weight in gold. Eventually IBM will come around and support doing this natively, and (currently) there are a lot of reasons why they can't, but there is no reason you shouldn't do it on your own until then. Brian -- 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 -- 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
Re: JCL Question
On 7/13/2011 6:52 AM, R.S. wrote: No, in general it is matter of definition. My English is poor, but let me present another example, as off topic as dog's one: A car. In my country, Combi (Wagon) car is named in folders as 5-doors car. Hatchback is also 5-doors or 3-doors. Does anyone use the tailgate as a doors? Since we're already off-topic - yes. Some years ago the locks on my station wagon froze (we have fairly cold winters), and I had to get into the car through the back. Gerhard Postpischil Bradford, VT -- 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
Re: JCL Question
In of2fd6182a.9e19429d-on862578cb.00711c7c-862578cb.00711...@assurant.com, on 07/12/2011 at 03:35 PM, Jonathan Goossen jonathan.goos...@assurant.com said: Job Control Language Gesundheit! That's not even a claim that it's a programming language. -- Shmuel (Seymour J.) Metz, SysProg and JOAT ISO position; see http://patriot.net/~shmuel/resume/brief.html We don't care. We don't have to care, we're Congress. (S877: The Shut up and Eat Your spam act of 2003) -- 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
Re: JCL Question
In 887215793-1310501180-cardhu_decombobulator_blackberry.rim.net-1377146756-@b12.c1.bise6.blackberry, on 07/12/2011 at 08:06 PM, Ted MacNEIL eamacn...@yahoo.ca said: Looping constructs are not required to make it a programming language. The ability to iterate is. Of course, that can be done with recursion rather than explicit loops, but JCL doesn't have that either. -- Shmuel (Seymour J.) Metz, SysProg and JOAT ISO position; see http://patriot.net/~shmuel/resume/brief.html We don't care. We don't have to care, we're Congress. (S877: The Shut up and Eat Your spam act of 2003) -- 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
Re: JCL Question
In 45e5f2f45d7878458ee5ca679697335502e25...@usdaexch01.kbm1.loc, on 07/12/2011 at 12:57 PM, Staller, Allan allan.stal...@kbmg.com said: IIRC, static system symbols can be substituted in JCL. For STC and TSU, but not for batch. -- Shmuel (Seymour J.) Metz, SysProg and JOAT ISO position; see http://patriot.net/~shmuel/resume/brief.html We don't care. We don't have to care, we're Congress. (S877: The Shut up and Eat Your spam act of 2003) -- 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
Re: JCL Question
In 1340844227-1310499369-cardhu_decombobulator_blackberry.rim.net-208261873-@b12.c1.bise6.blackberry, on 07/12/2011 at 07:36 PM, Ted MacNEIL eamacn...@yahoo.ca said: I disagree. JCL meets all criteria to be a programming language. Nonsense. It doesn't do everything, but what language does? Irrelevant. The question isn't whether it does everything, the question is whether it does at least the minimum. It doesn't. -- Shmuel (Seymour J.) Metz, SysProg and JOAT ISO position; see http://patriot.net/~shmuel/resume/brief.html We don't care. We don't have to care, we're Congress. (S877: The Shut up and Eat Your spam act of 2003) -- 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
Re: JCL Question
We create thousands of datasets with a date stamp as a qualifier. See example: //BJKBR14 JOB 1,'BRYAN K.',CLASS=Z,MSGCLASS=X,MSGLEVEL=(1,1) //INCL INCLUDE MEMBER=MCDATE //STEP005 EXEC PGM=IEFBR14 //DD1 DD DSN=SHRT.DUMMY.DMCDATE,UNIT=VIO,SPACE=(TRK,(1,1)) The expanded JCL after execution looks like this: 1 //BJKBR14 JOB 1,'BRYAN K.',CLASS=Z,MSGCLASS=X,MSGLEVEL=(1,1) JOB54091 2 //INCL INCLUDE MEMBER=MCDATE XX* SET A VARIABLE FOR THE CURRENT DATA 3 XXDTSTAMP SET MCDATE=2011194 4 //STEP005 EXEC PGM=IEFBR14 5 //DD1 DD DSN=SHRT.DUMMY.DMCDATE,UNIT=VIO,SPACE=(TRK,(1,1)) IEFC653I SUBSTITUTION JCL - DSN=SHRT.DUMMY.D2011194,UNIT=VIO,SPACE=(TRK,(1,1)) The trick is to run a process at 23:59:59 everyday to update the MCDATE member in a proclib that is in your JES2 proclib concatenation. We've done this for years and it works well. I guess the only downside is if the automation task somehow fails to update the MCDATE member at midnight. Bryan Klimek Mayo Clinic -- 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
Re: JCL Question
How about EZACFSM1? -Original Message- From: IBM Mainframe Discussion List [mailto:IBM-MAIN@bama.ua.edu] On Behalf Of Mosley, George Sent: Tuesday, July 12, 2011 1:28 PM To: IBM-MAIN@bama.ua.edu Subject: JCL Question Hello All. We're trying to set up a batch job that will append a datestamp to a dataset name. For example: //S0 EXEC PGM=EMCSRDF //SYSPRINT DD DSN=STRG.SRDF.INVTRKS.JUL09.@1408, //STORCLAS=BASE,MGMTCLAS=MEDIUM, //DISP=(,CATLG), //SPACE=(TRK,(15,15),RLSE), //DCB=(RECFM=FBA,LRECL=133,BLKSIZE=0) //SYSINDD * EMC-SQ VOL,44FA,INV_TRKS /* When we run this job, we hard code JUL09.@1408 to the end of the SYSPRINT dataset name. Is there a way to have the JCL automatically add the datestamp? George (ICBC) This email and any attachments are intended only for the named recipient and may contain confidential and/or privileged material. Any unauthorized copying, dissemination or other use by a person other than the named recipient of this communication is prohibited. If you received this in error or are not named as a recipient, please notify the sender and destroy all copies of this email immediately. -- 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 -- 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
Re: JCL Question
On Wed, Jul 13, 2011 at 1:07 PM, Shmuel Metz (Seymour J.) shmuel+ibm-m...@patriot.net wrote: Looping constructs are not required to make it a programming language. The ability to iterate is. Of course, that can be done with recursion rather than explicit loops, but JCL doesn't have that either. -- Shmuel (Seymour J.) Metz, SysProg and JOAT I have done an IEBGENER to a INTRDR to run the same job until I broke the loop. -- Mike A Schwab, Springfield IL USA Where do Forest Rangers go to get away from it all? -- 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
Re: JCL Question
The ability to iterate is. Of course, that can be done with recursion rather than explicit loops, but JCL doesn't have that either Looping/iteration, while desirable, is NOT a requirement to be a programming language. Just stepping through is adequate! - Ted MacNEIL eamacn...@yahoo.ca Twitter: @TedMacNEIL -- 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
JCL Question
Hello All. We're trying to set up a batch job that will append a datestamp to a dataset name. For example: //S0 EXEC PGM=EMCSRDF //SYSPRINT DD DSN=STRG.SRDF.INVTRKS.JUL09.@1408, //STORCLAS=BASE,MGMTCLAS=MEDIUM, //DISP=(,CATLG), //SPACE=(TRK,(15,15),RLSE), //DCB=(RECFM=FBA,LRECL=133,BLKSIZE=0) //SYSINDD * EMC-SQ VOL,44FA,INV_TRKS /* When we run this job, we hard code JUL09.@1408 to the end of the SYSPRINT dataset name. Is there a way to have the JCL automatically add the datestamp? George (ICBC) This email and any attachments are intended only for the named recipient and may contain confidential and/or privileged material. Any unauthorized copying, dissemination or other use by a person other than the named recipient of this communication is prohibited. If you received this in error or are not named as a recipient, please notify the sender and destroy all copies of this email immediately. -- 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
Re: JCL Question
On Tue, 12 Jul 2011 17:27:58 +, Mosley, George wrote: Is there a way to have the JCL automatically add the datestamp? No. -- gil -- 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
Re: JCL Question
IIRC, static system symbols can be substituted in JCL. Check the Init Tuning Guide for details as what the static system symbols are. Try: //SYSPRINT DD DSN=STRG.SRDF.INVTRKS.SYSDATE., //STORCLAS=BASE,MGMTCLAS=MEDIUM, //DISP=(,CATLG), //SPACE=(TRK,(15,15),RLSE), //DCB=(RECFM=FBA,LRECL=133,BLKSIZE=0) (I think I got the syntax right). If that does not work, there are several utility programs on the CBT tape (www.cbttape.org) that will perform symbol substitution for you. HTH, snip We're trying to set up a batch job that will append a datestamp to a dataset name. For example: //SYSPRINT DD DSN=STRG.SRDF.INVTRKS.JUL09.@1408, //STORCLAS=BASE,MGMTCLAS=MEDIUM, //DISP=(,CATLG), //SPACE=(TRK,(15,15),RLSE), //DCB=(RECFM=FBA,LRECL=133,BLKSIZE=0) // When we run this job, we hard code JUL09.@1408 to the end of the SYSPRINT dataset name. Is there a way to have the JCL automatically add the datestamp? /snip -- 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
Re: JCL Question
I found this on the web and it appears to work but you can bypass the first job by running as a Started Task: //ABAB77V1 JOB (0400,PT,PES),'KIRAN',CLASS=C,MSGCLASS=X, // MSGLEVEL=(1,1),NOTIFY=ABAB77,REGION=0008192K //STEP0100 EXEC PGM=EZACFSM1 //SYSOUTDD SYSOUT=(*,INTRDR) //SYSIN DD DATA,DLM=@@ //ABAB77V2 JOB (0400,PT,PES), // 'VIJAY', // CLASS=C, // MSGCLASS=X, // NOTIFY=SYSUID //STEPK1 EXEC PGM=IEBGENER //SYSPRINT DD SYSOUT=* //SYSUT1 DD DSN=ABAB.TX.SND.SQUS0001.SI,DISP=SHR //SYSUT2 DD DSN=ABAB.TX.SND.SQUS0001.SI.DLYYMMDD..TLHHMMSS, //DISP=(NEW,CATLG,DELETE), //SPACE=(CYL,(2,2),RLSE), //DCB=(LRECL=890,RECFM=FB) //SYSIN DD DUMMY @@ For the Started Task all you need is: //STEPK1 EXEC PGM=IEBGENER //SYSPRINT DD SYSOUT=* //SYSUT1 DD DSN=ABAB.TX.SND.SQUS0001.SI,DISP=SHR //SYSUT2 DD DSN=ABAB.TX.SND.SQUS0001.SI.DLYYMMDD..TLHHMMSS, //DISP=(NEW,CATLG,DELETE), //SPACE=(CYL,(2,2),RLSE), //DCB=(LRECL=890,RECFM=FB) //SYSIN DD DUMMY -Original Message- From: IBM Mainframe Discussion List [mailto:IBM-MAIN@bama.ua.edu] On Behalf Of Mosley, George Sent: Tuesday, July 12, 2011 1:28 PM To: IBM-MAIN@bama.ua.edu Subject: JCL Question Hello All. We're trying to set up a batch job that will append a datestamp to a dataset name. For example: //S0 EXEC PGM=EMCSRDF //SYSPRINT DD DSN=STRG.SRDF.INVTRKS.JUL09.@1408, //STORCLAS=BASE,MGMTCLAS=MEDIUM, //DISP=(,CATLG), //SPACE=(TRK,(15,15),RLSE), //DCB=(RECFM=FBA,LRECL=133,BLKSIZE=0) //SYSINDD * EMC-SQ VOL,44FA,INV_TRKS /* When we run this job, we hard code JUL09.@1408 to the end of the SYSPRINT dataset name. Is there a way to have the JCL automatically add the datestamp? George (ICBC) This email and any attachments are intended only for the named recipient and may contain confidential and/or privileged material. Any unauthorized copying, dissemination or other use by a person other than the named recipient of this communication is prohibited. If you received this in error or are not named as a recipient, please notify the sender and destroy all copies of this email immediately. -- 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 This e-mail may contain confidential or privileged information. If you think you have received this e-mail in error, please advise the sender by reply e-mail and then delete this e-mail immediately. Thank you. Aetna -- 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
Re: JCL Question
On 7/12/2011 1:27 PM, Mosley, George wrote: We're trying to set up a batch job that will append a datestamp to a dataset name. //SYSPRINT DD DSN=STRG.SRDF.INVTRKS.JUL09.@1408, Is there a way to have the JCL automatically add the datestamp? Not per se, but you could add code for the submission/conversion date in a system exit (e.g., IEFUJV, or one of the JES exits). Depending on how you get the JCL into the system, it might be easier to do as part of the submission process? Gerhard Postpischil Bradford, VT -- 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
Re: JCL Question
contrary to popular misconceptions, JCL is not a programming language, meaning it's not used to manipulate data. To append data onto any existing file, code disp=mod instead of shr/new/old and use appropriate pgm/util to read in write out what you want. --- On Tue, 7/12/11, Mosley, George george.mos...@icbc.com wrote: From: Mosley, George george.mos...@icbc.com Subject: JCL Question To: IBM-MAIN@bama.ua.edu Date: Tuesday, July 12, 2011, 1:27 PM Hello All. We're trying to set up a batch job that will append a datestamp to a dataset name. For example: //S0 EXEC PGM=EMCSRDF //SYSPRINT DD DSN=STRG.SRDF.INVTRKS.JUL09.@1408, // STORCLAS=BASE,MGMTCLAS=MEDIUM, // DISP=(,CATLG), // SPACE=(TRK,(15,15),RLSE), // DCB=(RECFM=FBA,LRECL=133,BLKSIZE=0) //SYSIN DD * EMC-SQ VOL,44FA,INV_TRKS /* When we run this job, we hard code JUL09.@1408 to the end of the SYSPRINT dataset name. Is there a way to have the JCL automatically add the datestamp? George (ICBC) This email and any attachments are intended only for the named recipient and may contain confidential and/or privileged material. Any unauthorized copying, dissemination or other use by a person other than the named recipient of this communication is prohibited. If you received this in error or are not named as a recipient, please notify the sender and destroy all copies of this email immediately. -- 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 -- 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
Re: JCL Question
George, As others have mentioned, this is not a big deal IF the job can run as an STC (i.e. using dynamic system symbols). I had a customer who absolutely insisted on doing something similar (i.e. placing a time-stamp in a DSN created by a batch job). I could easily do it with a REXX or CLIST (e.g. that uses ISPF File Tailoring or EDIT Macro services or even the EDIT CP). I didn't want to do that, so I came up with an alternative that you may find too messy to utilize. In a nutshell, the batch jobstep (S0 in your case) creates a dataset having a base DSN (i.e. without any date/time stamp information); this would be DSN=STRG.SRDF.INVTRKS in your case. A subsequent jobstep renames this dataset, adding a time-stamp. The JCL for that step is: // SET MYDSN=STRG.SRDF.INVTRKS // SET STAMP='$(date +.D%y%m%d.T%H%M%S)' //* //USS EXEC PGM=BPXBATCH,REGION=31M, // PARM='sh tso -t RENAME ''MYDSN'' ''MYDSNSTAMP''' //STDOUTDD SYSOUT=* The time-stamp comprises the current date (Dyymmdd) and time (Thhmmss). Be sure that you use CAPS OFF because case is significant. Also, it's very difficult to differentiate apostrophes from quotation marks in the sample above. Here is the text of the parm with Q utilized as quotation mark () and A utilized as apostrophe ('): // PARM=Ash tso -t QRENAME AAMYDSNAA AAMYDSNSTAMPAAQA Short explanation of what I am doing: 1) I am embedding a USS environment variable in the DSN using the special $(command) notation. This notation causes the OUTPUT of the specified command to be substituted in place of $(command) 2) The USS command that I am invoking is date. The string specified in quotation marks, following the plus sign, is a mask. All characters except %_ (where _ represents some character) represent themselves (e.g. the D, T and .) %_ is replaced by some piece of the current date or time; there is a whole slew of possibilities (see USS commands). 3) the PARM tells the USS shell to invoke a TSO service (i.e. RENAME). The shell substitutes all USS environment values, including $(command), before invoking the tso service. Cheers, Alan -Original Message- From: IBM Mainframe Discussion List [mailto:IBM-MAIN@bama.ua.edu] On Behalf Of Mosley, George Sent: Tuesday, July 12, 2011 10:28 AM To: IBM-MAIN@bama.ua.edu Subject: JCL Question Hello All. We're trying to set up a batch job that will append a datestamp to a dataset name. For example: //S0 EXEC PGM=EMCSRDF //SYSPRINT DD DSN=STRG.SRDF.INVTRKS.JUL09.@1408, //STORCLAS=BASE,MGMTCLAS=MEDIUM, //DISP=(,CATLG), //SPACE=(TRK,(15,15),RLSE), //DCB=(RECFM=FBA,LRECL=133,BLKSIZE=0) //SYSINDD * EMC-SQ VOL,44FA,INV_TRKS /* When we run this job, we hard code JUL09.@1408 to the end of the SYSPRINT dataset name. Is there a way to have the JCL automatically add the datestamp? George (ICBC) This email and any attachments are intended only for the named recipient and may contain confidential and/or privileged material. Any unauthorized copying, dissemination or other use by a person other than the named recipient of this communication is prohibited. If you received this in error or are not named as a recipient, please notify the sender and destroy all copies of this email immediately. -- 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 -- 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
Re: JCL Question
I disagree. JCL meets all criteria to be a programming language. It doesn't do everything, but what language does? But, it is more complex than channel programmes, and they're considered a programming language. - Ted MacNEIL eamacn...@yahoo.ca Twitter: @TedMacNEIL -Original Message- From: Cris Hernandez #9 hernandez...@yahoo.com Sender: IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu Date: Tue, 12 Jul 2011 12:08:22 To: IBM-MAIN@bama.ua.edu Reply-To: IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu Subject: Re: JCL Question contrary to popular misconceptions, JCL is not a programming language, meaning it's not used to manipulate data. To append data onto any existing file, code disp=mod instead of shr/new/old and use appropriate pgm/util to read in write out what you want. --- On Tue, 7/12/11, Mosley, George george.mos...@icbc.com wrote: From: Mosley, George george.mos...@icbc.com Subject: JCL Question To: IBM-MAIN@bama.ua.edu Date: Tuesday, July 12, 2011, 1:27 PM Hello All. We're trying to set up a batch job that will append a datestamp to a dataset name. For example: //S0 EXEC PGM=EMCSRDF //SYSPRINT DD DSN=STRG.SRDF.INVTRKS.JUL09.@1408, // STORCLAS=BASE,MGMTCLAS=MEDIUM, // DISP=(,CATLG), // SPACE=(TRK,(15,15),RLSE), // DCB=(RECFM=FBA,LRECL=133,BLKSIZE=0) //SYSIN DD * EMC-SQ VOL,44FA,INV_TRKS /* When we run this job, we hard code JUL09.@1408 to the end of the SYSPRINT dataset name. Is there a way to have the JCL automatically add the datestamp? George (ICBC) This email and any attachments are intended only for the named recipient and may contain confidential and/or privileged material. Any unauthorized copying, dissemination or other use by a person other than the named recipient of this communication is prohibited. If you received this in error or are not named as a recipient, please notify the sender and destroy all copies of this email immediately. -- 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 -- 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 -- 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
Re: JCL Question
On Tue, 12 Jul 2011 19:36:09 + Ted MacNEIL eamacn...@yahoo.ca wrote: :I disagree. :JCL meets all criteria to be a programming language. :It doesn't do everything, but what language does? No looping construct. :But, it is more complex than channel programmes, and they're considered a programming language. Has TIC :Ted MacNEIL :eamacn...@yahoo.ca :Twitter: @TedMacNEIL : :-Original Message- :From: Cris Hernandez #9 hernandez...@yahoo.com :Sender: IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu :Date: Tue, 12 Jul 2011 12:08:22 :To: IBM-MAIN@bama.ua.edu :Reply-To: IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu :Subject: Re: JCL Question : :contrary to popular misconceptions, JCL is not a programming language, meaning it's not used to manipulate data. To append data onto any existing file, code disp=mod instead of shr/new/old and use appropriate pgm/util to read in write out what you want. : : :--- On Tue, 7/12/11, Mosley, George george.mos...@icbc.com wrote: : : From: Mosley, George george.mos...@icbc.com : Subject: JCL Question : To: IBM-MAIN@bama.ua.edu : Date: Tuesday, July 12, 2011, 1:27 PM : Hello All. : : We're trying to set up a batch job that will append a : datestamp to a dataset name. : For example: : : //S0 EXEC PGM=EMCSRDF : //SYSPRINT DD DSN=STRG.SRDF.INVTRKS.JUL09.@1408, : // : STORCLAS=BASE,MGMTCLAS=MEDIUM, : // DISP=(,CATLG), : // : SPACE=(TRK,(15,15),RLSE), : // : DCB=(RECFM=FBA,LRECL=133,BLKSIZE=0) : //SYSIN DD * : EMC-SQ VOL,44FA,INV_TRKS : /* : : When we run this job, we hard code JUL09.@1408 to the end : of the SYSPRINT dataset name. : Is there a way to have the JCL automatically add the : datestamp? : : George (ICBC) : : This email and any attachments are intended only for the : named : recipient and may contain confidential and/or privileged : material. : Any unauthorized copying, dissemination or other use by a : person : other than the named recipient of this communication is : prohibited. : If you received this in error or are not named as a : recipient, : please notify the sender and destroy all copies of this : email : immediately. : : -- : 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 : : :-- :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 : :-- :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 -- Binyamin Dissen bdis...@dissensoftware.com http://www.dissensoftware.com Director, Dissen Software, Bar Grill - Israel Should you use the mailblocks package and expect a response from me, you should preauthorize the dissensoftware.com domain. I very rarely bother responding to challenge/response systems, especially those from irresponsible companies. -- 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
Re: JCL Question
No looping construct. Has TIC Looping constructs are not required to make it a programming language. It makes it easier, but it's not required. - Ted MacNEIL eamacn...@yahoo.ca Twitter: @TedMacNEIL -- 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
Re: JCL Question
Job Control Language Thank you and have a Terrific day! Jonathan Goossen, ACS, CL Tape Specialist ACT Mainframe Storage Group 651-361-4541 IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 07/12/2011 02:08:22 PM: From: Cris Hernandez #9 hernandez...@yahoo.com To: IBM-MAIN@bama.ua.edu Date: 07/12/2011 02:08 PM Subject: Re: JCL Question Sent by: IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu contrary to popular misconceptions, JCL is not a programming language, meaning it's not used to manipulate data. To append data onto any existing file, code disp=mod instead of shr/new/old and use appropriate pgm/util to read in write out what you want. --- On Tue, 7/12/11, Mosley, George george.mos...@icbc.com wrote: From: Mosley, George george.mos...@icbc.com Subject: JCL Question To: IBM-MAIN@bama.ua.edu Date: Tuesday, July 12, 2011, 1:27 PM Hello All. We're trying to set up a batch job that will append a datestamp to a dataset name. For example: //S0 EXEC PGM=EMCSRDF //SYSPRINT DD DSN=STRG.SRDF.INVTRKS.JUL09.@1408, // STORCLAS=BASE,MGMTCLAS=MEDIUM, //DISP=(,CATLG), // SPACE=(TRK,(15,15),RLSE), // DCB=(RECFM=FBA,LRECL=133,BLKSIZE=0) //SYSINDD * EMC-SQ VOL,44FA,INV_TRKS /* When we run this job, we hard code JUL09.@1408 to the end of the SYSPRINT dataset name. Is there a way to have the JCL automatically add the datestamp? George (ICBC) This email and any attachments are intended only for the named recipient and may contain confidential and/or privileged material. Any unauthorized copying, dissemination or other use by a person other than the named recipient of this communication is prohibited. If you received this in error or are not named as a recipient, please notify the sender and destroy all copies of this email immediately. -- 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 -- 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 This e-mail message and all attachments transmitted with it may contain legally privileged and/or confidential information intended solely for the use of the addressee(s). If the reader of this message is not the intended recipient, you are hereby notified that any reading, dissemination, distribution, copying, forwarding or other use of this message or its attachments is strictly prohibited. If you have received this message in error, please notify the sender immediately and delete this message and all copies and backups thereof. Thank you. -- 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
Re: JCL Question
When we run this job, we hard code JUL09.@1408 to the end of the SYSPRINT dataset name. Is there a way to have the JCL automatically add the datestamp You should look at the system symbols for DUMPSRVR and see if they might be usable. It has things like date and time (various flavors) that you might be able to use. Lizette -- 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
Re: If Else JCL question
Sorry for the delayed response... Yes, it is permissible to omit the continuation mark. From the z/OS V1R10.0 MVS JCL Reference manual section 17.1.4: Continuing a Relational Expression You can continue relational-expressions on the next JCL statement. Break the relational-expression where a blank is valid on the current statement, and continue the expression beginning in column 4 through 16 of the next statement. Do not put comments on the statement that you are continuing. You can code comments after you have completed the statement. For example: //TESTCON IF (RC = 8 | RC = 10 | RC = 12 | //RC = 14) THEN COMMENTS OK HERE Note the lack of continuation character. On Fri, 21 Jan 2011 09:22:06 -0600, Paul Gilmartin paulgboul...@aim.com wrote: On Fri, 21 Jan 2011 08:08:32 -0600, Robert Birdsall wrote: Similar to Gil's reply - skip if you've had enough... ... // IF (STEPA.RC = 4 AND STEPB.RC = 0 AND STEPC.RUN = FALSE AND // STEPD.RC = 8 AND STEPE.RUN = FALSE) OR ... Is it permissible to omit the continuation mark in col. 72 as you appear to have done? I thought that was permitted only if the continued line ended with a comma. (I looked briefly, not thoroughly, for this in the IF...ELSE chapter of the JCL RM.) Beware of COND=ONLY to suppress execution. Decades ago, a colleague did that, but a prior step ABENDed. Embarrassing because it was my program. I've since used COND=(0,LE). Still waiting for a followup in COND format from the person who posed the challenge... -- gil -- 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 -- 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
SV: SV: If Else JCL question
-Ursprungligt meddelande- Från: IBM Mainframe Discussion List [mailto:IBM-MAIN@bama.ua.edu] För Paul Gilmartin Skickat: den 22 januari 2011 01:11 Till: IBM-MAIN@bama.ua.edu Ämne: Re: SV: If Else JCL question On Fri, 21 Jan 2011 13:28:51 +0100, Thomas Berg wrote: I would have preferred something like this instead of the delivered IF..THEN logic: //S050 EXEC WHATEVER,RUNIF=(RC,LE,4,S010) RUNIF=(RC,8,S010) RUNIF=(RUN,S020) RUNIF=(RUN,ANY) RUNIF=(NOTRUN,S030) RUNIF=(FLUSHED,S040) RUNIF=(JCLERROR,S040) ..and in combinations as in COND. etc. Why? Eliding the EQ may be more confusing than convenient. Maybe. But not for me, I see it that an EQ or = is naturally implicit. Is there any difference between NOTRUN and FLUSHED? If so, should there also be a NOTFLUSHED? I it could be JCLERROR (rather than FLUSHED due to previous RC). The ability to test and recover from a JCLERROR is a novel concept. Would IBM buy it as a construct in IF...THEN? Why not? And why not just extend COND with the new constructs? Mainly due to backward compatibility concerns. And it could lead to confusion with two different type of syntaxthinking in COND. IF...THEN has some nice properties: My main dislike with IF..THEN etc. is that the resulting JCL is not easy to read (for me at least). With a keyword at each EXEC it is at least more compact. And You don't have to search for pairing the IF's with the ENDIF's etc. o ELSE provides a nice alternative; no need to invert the COND with deMorgan's Laws (and COND supports disjunction but not conjunction). o IF...THEN can control multiple steps with no need to restate the COND on every EXEC statement (but symbol substitution could simplify this). Yes, this is nice in itself. But You still have to pair the ENDIF's with the IF's etc. o One or more of the controlled steps can be a PROC call with no need to override COND on the individual PROC steps, and no conflict with COND in legacy library PROCs My idea is that the RUNIF would work also against the step that EXEC's the proc. (Including the proc's steps.) o The ability to test for specific ABEND codes. All in all, I see considerable fear of innovation here. Perhaps, If I couldn't run it on my turnkey MVS 3.8 under Hercules, I'd rather not deal with it. Isn't that a fair stance ? :) Hälsn Thomas _ Thomas Berg Specialist A M SWEDBANK -- 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
Re: SV: SV: If Else JCL question
On Mon, 24 Jan 2011 12:37:38 +0100, Thomas Berg wrote: My main dislike with IF..THEN etc. is that the resulting JCL is not easy to read (for me at least). With a keyword at each EXEC it is at least more compact. And You don't have to FSVO easy to read and compact. Compare CM Poncelet's realization of a compound condition (which he suggested) to mine: http://bama.ua.edu/cgi-bin/wa?A2=ind1101L=ibm-mainP=103415 search for pairing the IF's with the ENDIF's etc. IBM missed a useful, valuable, feature here by failing to require that the label on ELSE and ENDIF match that on IF. -- gil -- 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
SV: SV: SV: If Else JCL question
-Ursprungligt meddelande- Från: IBM Mainframe Discussion List [mailto:IBM-MAIN@bama.ua.edu] För Paul Gilmartin Skickat: den 24 januari 2011 14:55 Till: IBM-MAIN@bama.ua.edu Ämne: Re: SV: SV: If Else JCL question On Mon, 24 Jan 2011 12:37:38 +0100, Thomas Berg wrote: My main dislike with IF..THEN etc. is that the resulting JCL is not easy to read (for me at least). With a keyword at each EXEC it is at least more compact. And You don't have to FSVO easy to read and compact. Compare CM Poncelet's realization of a compound condition (which he suggested) to mine: http://bama.ua.edu/cgi-bin/wa?A2=ind1101L=ibm-mainP=103415 It wasn't my intention to translate easy to read as compact. It's more about the impression of the JCL code to be cluttered by the IF-constructs - including more code lines. I tried once using IF-constructs for a more complicated case which resulted in a JCL with more IF-construct lines that the rest. I won a bit in more understandable conditions but lose more in the overall readability. I suppose a part of my difficulties with these new constructs is my relatively short experience with them. After all, I have lived with the old constructs in nearly 30 years. (OH MY GOD!) :) Regards, Thomas Berg _ Thomas Berg Specialist A M SWEDBANK -- 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
Re: If Else JCL question
Paul Gilmartin wrote: On Fri, 21 Jan 2011 02:01:45 +, CM Poncelet ponce...@bcs.org.uk wrote: Any boolean tests can be performed with 'COND=', but not so with 'IF ELSE etc.' We have already discussed this in the past. Sorry; I missed that. Actually, I did not realise 'IF ELSE ...' now supports boolean testing (if it does, that is). As far as I know, it didn't in the past - but, then again, I never use it anyway. But please show me how 'IF ELSE ...' handles the following: Execute STEPF if - STEPA sets CC=04, STEPB sets CC=00, STEPC did not execute, STEPD sets CC=08 and STEPE did not execute or if - STEPA sets CC=00, STEPB did not execute, STEPC sets CC=04, STEPD did not execute and STEPE sets CC=00 or if - STEPA did not execute, STEPB sets CC=00, STEPC sets CC=04, STEPD sets CC=08 and STEPE sets either CC=04 or CC=08 otherwise do not execute STEPF. OK: // //IFELSEJOB 505303JOB,'Paul Gilmartin', // MSGLEVEL=(1,1),REGION=0M //* //USERCOUTPUT JESDS=ALL,DEFAULT=YES, // CLASS=R,PAGEDEF=V0648Z,CHARS=GT12 //* //STEPA EXEC PGM=IEFBR14 //STEPB EXEC PGM=IEFBR14 //STEPC EXEC PGM=IEFBR14 //STEPD EXEC PGM=IEFBR14 //STEPE EXEC PGM=IEFBR14 //TEST IF ( STEPA.RC=04 STEPB.RC=00x // STEPC.RUN=FALSE STEPD.RC=08 STEPE.RUN=FALSE ) | x // ( STEPA.RC=00 STEPB.RUN=FALSEx // STEPC.RC=04 STEPD.RUN=FALSE STEPE.RC=00 ) | x // ( STEPA.RUN=FALSE STEPB.RC=00x // STEPC.RC=04 STEPD.RC=08x // ( STEPE.RC=04 | STEPE.RC=08 ) ) THEN //STEPF EXEC PGM=IEFBR14 //TEST ENDIF // :w ! submit Tested; STEPA through STEPE execute; STEPF is skipped because of condiional expression. I didn't check with truth table. Also typos possible. Now, kindly reciprocate and show me how this is coded with the COND parameter on the EXEC statement, please, Case #1: //STEPA EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSINDD * SET MAXCC EQ 4 //STEPB EXEC PGM=IEFBR14 //STEPC EXEC PGM=IEFBR14,COND=(0,LE) //STEPD EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSINDD * SET MAXCC EQ 8 //STEPE EXEC PGM=IEFBR14,COND=(0,LE) //* //* THE FOLLOWING ARE THE SAME IN ALL CASES: //* //EX01 EXEC PGM=IEFBR14, //COND=((04,NE,STEPA),(00,NE,STEPB),(00,LE,STEPC), //(08,NE,STEPD),(00,LE,STEPE)) //EX02 EXEC PGM=IEFBR14, //COND=((00,NE,STEPA),(00,LE,STEPB),(04,NE,STEPC), //(00,LE,STEPD),(00,NE,STEPE)) //OX03 EXEC PGM=IEFBR14, //COND=((04,EQ,STEPE),(08,EQ,STEPE)) //EX03 EXEC PGM=IEFBR14, //COND=((00,LE,STEPA),(00,NE,STEPB),(04,NE,STEPC), //(08,NE,STEPD),(00,LE,OX03)) //NX04 EXEC PGM=IEFBR14, //COND=((00,LE,EX01),(00,LE,EX02),(00,LE,EX03)) //* //STEPF EXEC PGM=IEFBR14,COND=(00,LE,NX04) Case #2: //STEPA EXEC PGM=IEFBR14 //STEPB EXEC PGM=IEFBR14,COND=(0,LE) //STEPC EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSINDD * SET MAXCC EQ 4 //STEPD EXEC PGM=IEFBR14,COND=(0,LE) //STEPE EXEC PGM=IEFBR14 //* //* THE FOLLOWING ARE THE SAME IN ALL CASES: //* //EX01 EXEC PGM=IEFBR14, //COND=((04,NE,STEPA),(00,NE,STEPB),(00,LE,STEPC), //(08,NE,STEPD),(00,LE,STEPE)) //EX02 EXEC PGM=IEFBR14, //COND=((00,NE,STEPA),(00,LE,STEPB),(04,NE,STEPC), //(00,LE,STEPD),(00,NE,STEPE)) //OX03 EXEC PGM=IEFBR14, //COND=((04,EQ,STEPE),(08,EQ,STEPE)) //EX03 EXEC PGM=IEFBR14,
Re: If Else JCL question
Paul Gilmartin wrote: On Fri, 21 Jan 2011 02:01:45 +, CM Poncelet ponce...@bcs.org.uk wrote: Any boolean tests can be performed with 'COND=', but not so with 'IF ELSE etc.' We have already discussed this in the past. Sorry; I missed that. But please show me how 'IF ELSE ...' handles the following: Execute STEPF if - STEPA sets CC=04, STEPB sets CC=00, STEPC did not execute, STEPD sets CC=08 and STEPE did not execute or if - STEPA sets CC=00, STEPB did not execute, STEPC sets CC=04, STEPD did not execute and STEPE sets CC=00 or if - STEPA did not execute, STEPB sets CC=00, STEPC sets CC=04, STEPD sets CC=08 and STEPE sets either CC=04 or CC=08 otherwise do not execute STEPF. OK: // //IFELSEJOB 505303JOB,'Paul Gilmartin', // MSGLEVEL=(1,1),REGION=0M //* //USERCOUTPUT JESDS=ALL,DEFAULT=YES, // CLASS=R,PAGEDEF=V0648Z,CHARS=GT12 //* //STEPA EXEC PGM=IEFBR14 //STEPB EXEC PGM=IEFBR14 //STEPC EXEC PGM=IEFBR14 //STEPD EXEC PGM=IEFBR14 //STEPE EXEC PGM=IEFBR14 //TEST IF ( STEPA.RC=04 STEPB.RC=00x // STEPC.RUN=FALSE STEPD.RC=08 STEPE.RUN=FALSE ) | x // ( STEPA.RC=00 STEPB.RUN=FALSEx // STEPC.RC=04 STEPD.RUN=FALSE STEPE.RC=00 ) | x // ( STEPA.RUN=FALSE STEPB.RC=00x // STEPC.RC=04 STEPD.RC=08x // ( STEPE.RC=04 | STEPE.RC=08 ) ) THEN //STEPF EXEC PGM=IEFBR14 //TEST ENDIF // :w ! submit Tested; STEPA through STEPE execute; STEPF is skipped because of condiional expression. I didn't check with truth table. Also typos possible. Now, kindly reciprocate and show me how this is coded with the COND parameter on the EXEC statement, please, Here it is again, hopefully more legible ... Case #1: //STEPA EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSINDD * SET MAXCC EQ 4 //STEPB EXEC PGM=IEFBR14 //STEPC EXEC PGM=IEFBR14,COND=(0,LE) //STEPD EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSINDD * SET MAXCC EQ 8 //STEPE EXEC PGM=IEFBR14,COND=(0,LE) //* //EX01 EXEC PGM=IEFBR14, //COND=((04,NE,STEPA),(00,NE,STEPB),(00,LE,STEPC), //(08,NE,STEPD),(00,LE,STEPE)) //EX02 EXEC PGM=IEFBR14, //COND=((00,NE,STEPA),(00,LE,STEPB),(04,NE,STEPC), //(00,LE,STEPD),(00,NE,STEPE)) //OX03 EXEC PGM=IEFBR14, //COND=((04,EQ,STEPE),(08,EQ,STEPE)) //EX03 EXEC PGM=IEFBR14, //COND=((00,LE,STEPA),(00,NE,STEPB),(04,NE,STEPC), //(08,NE,STEPD),(00,LE,OX03)) //NX04 EXEC PGM=IEFBR14, //COND=((00,LE,EX01),(00,LE,EX02),(00,LE,EX03)) //* //STEPF EXEC PGM=IEFBR14,COND=(00,LE,NX04) Case #2: //STEPA EXEC PGM=IEFBR14 //STEPB EXEC PGM=IEFBR14,COND=(0,LE) //STEPC EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSINDD * SET MAXCC EQ 4 //STEPD EXEC PGM=IEFBR14,COND=(0,LE) //STEPE EXEC PGM=IEFBR14 //* //EX01 EXEC PGM=IEFBR14, //COND=((04,NE,STEPA),(00,NE,STEPB),(00,LE,STEPC), //(08,NE,STEPD),(00,LE,STEPE)) //EX02 EXEC PGM=IEFBR14, //COND=((00,NE,STEPA),(00,LE,STEPB),(04,NE,STEPC), //(00,LE,STEPD),(00,NE,STEPE)) //OX03 EXEC PGM=IEFBR14, //COND=((04,EQ,STEPE),(08,EQ,STEPE)) //EX03 EXEC PGM=IEFBR14, //COND=((00,LE,STEPA),(00,NE,STEPB),(04,NE,STEPC), //(08,NE,STEPD),(00,LE,OX03)) //NX04 EXEC PGM=IEFBR14, //
Re: If Else JCL question
-Original Message- From: IBM Mainframe Discussion List On Behalf Of Frank Swarbrick [ snip ] But what COND says is execute if 4 is less than the return code. [ snip ] Almost: Execute UNLESS 4 is less than the return code. -jc- -- 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
SV: If Else JCL question
I would have preferred something like this instead of the delivered IF..THEN logic: //S050 EXEC WHATEVER,RUNIF=(RC,LE,4,S010) RUNIF=(RC,8,S010) RUNIF=(RUN,S020) RUNIF=(RUN,ANY) RUNIF=(NOTRUN,S030) RUNIF=(FLUSHED,S040) RUNIF=(JCLERROR,S040) ..and in combinations as in COND. etc. Regards, Thomas Berg _ Thomas Berg Specialist A M SWEDBANK -Ursprungligt meddelande- Från: IBM Mainframe Discussion List [mailto:IBM-MAIN@bama.ua.edu] För Paul Gilmartin Skickat: den 21 januari 2011 07:37 Till: IBM-MAIN@bama.ua.edu Ämne: Re: If Else JCL question On Fri, 21 Jan 2011 02:01:45 +, CM Poncelet ponce...@bcs.org.uk wrote: Any boolean tests can be performed with 'COND=', but not so with 'IF ELSE etc.' We have already discussed this in the past. Sorry; I missed that. But please show me how 'IF ELSE ...' handles the following: Execute STEPF if - STEPA sets CC=04, STEPB sets CC=00, STEPC did not execute, STEPD sets CC=08 and STEPE did not execute or if - STEPA sets CC=00, STEPB did not execute, STEPC sets CC=04, STEPD did not execute and STEPE sets CC=00 or if - STEPA did not execute, STEPB sets CC=00, STEPC sets CC=04, STEPD sets CC=08 and STEPE sets either CC=04 or CC=08 otherwise do not execute STEPF. OK: // //IFELSEJOB 505303JOB,'Paul Gilmartin', // MSGLEVEL=(1,1),REGION=0M //* //USERCOUTPUT JESDS=ALL,DEFAULT=YES, // CLASS=R,PAGEDEF=V0648Z,CHARS=GT12 //* //STEPA EXEC PGM=IEFBR14 //STEPB EXEC PGM=IEFBR14 //STEPC EXEC PGM=IEFBR14 //STEPD EXEC PGM=IEFBR14 //STEPE EXEC PGM=IEFBR14 //TEST IF ( STEPA.RC=04 STEPB.RC=00x // STEPC.RUN=FALSE STEPD.RC=08 STEPE.RUN=FALSE ) | x // ( STEPA.RC=00 STEPB.RUN=FALSEx // STEPC.RC=04 STEPD.RUN=FALSE STEPE.RC=00 ) | x // ( STEPA.RUN=FALSE STEPB.RC=00x // STEPC.RC=04 STEPD.RC=08x // ( STEPE.RC=04 | STEPE.RC=08 ) ) THEN //STEPF EXEC PGM=IEFBR14 //TEST ENDIF // :w ! submit Tested; STEPA through STEPE execute; STEPF is skipped because of condiional expression. I didn't check with truth table. Also typos possible. Now, kindly reciprocate and show me how this is coded with the COND parameter on the EXEC statement, please, 'IF ELSE ...' is to 'COND=' as 'mouse' is to 'keyboard'. I fail to see the analogy. Thanks, gil -- 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 -- 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
Re: If Else JCL question
On Thu, 20 Jan 2011 15:11:40 -0800, Edward Jaffe edja...@phoenixsoftware.com wrote: On 1/19/2011 10:11 AM, Donald Johnson wrote: We used to use a program called KABOOM, which did not exist (as I suspect with BLOWUP). One JCL statement, and a very prominent S806 abend. We use: //ABEND806 EXEC PGM=ABEND806 This program does exactly what its name implies. ;-) -- I've also used PGM=EXPCT806 -- Mark Zelden - Zelden Consulting Services - z/OS, OS/390 and MVS mailto:mzel...@flash.net Mark's MVS Utilities: http://home.flash.net/~mzelden/mvsutil.html Systems Programming expert at http://expertanswercenter.techtarget.com/ -- 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
Re: If Else JCL question
Similar to Gil's reply - skip if you've had enough... I did test the following for all 4 execute STEPF conditions and some do not execute STEPF conditions. It works correctly as far as I can tell. Change the MAXCC=0 or the ',COND=ONLY' as required to test any condition you want. //JOBNAME JOB (whatever),'BSquare',CLASS=X,MSGCLASS=X,NOTIFY=SYSUID //* //STEPAEXEC PGM=IDCAMS,COND=ONLY //SYSPRINT DD DUMMY //SYSIN DD * SET MAXCC=0 //STEPBEXEC PGM=IDCAMS,COND=ONLY //SYSPRINT DD DUMMY //SYSIN DD * SET MAXCC=0 //STEPCEXEC PGM=IDCAMS,COND=ONLY //SYSPRINT DD DUMMY //SYSIN DD * SET MAXCC=0 //STEPDEXEC PGM=IDCAMS,COND=ONLY //SYSPRINT DD DUMMY //SYSIN DD * SET MAXCC=0 //STEPEEXEC PGM=IDCAMS,COND=ONLY //SYSPRINT DD DUMMY //SYSIN DD * SET MAXCC=0 // IF (STEPA.RC = 4 AND STEPB.RC = 0 AND STEPC.RUN = FALSE AND // STEPD.RC = 8 AND STEPE.RUN = FALSE) OR //(STEPA.RC = 0 AND STEPB.RUN = FALSE AND STEPC.RC = 4 AND // STEPD.RUN = FALSE AND STEPE.RC = 0) OR //(STEPA.RUN= FALSE AND STEPB.RC = 0 AND STEPC.RC = 4 AND // STEPD.RC = 8 AND (STEPE.RC = 4 OR STEPE.RC = 8)) THEN //STEPFEXEC PGM=IEFBR14 // ENDIF //STEPGEXEC PGM=IEFBR14 On Fri, 21 Jan 2011 02:01:45 +, CM Poncelet ponce...@bcs.org.uk wrote: Any boolean tests can be performed with 'COND=', but not so with 'IF ELSE etc.' We have already discussed this in the past. But please show me how 'IF ELSE ...' handles the following: Execute STEPF if - STEPA sets CC=04, STEPB sets CC=00, STEPC did not execute, STEPD sets CC=08 and STEPE did not execute or if - STEPA sets CC=00, STEPB did not execute, STEPC sets CC=04, STEPD did not execute and STEPE sets CC=00 or if - STEPA did not execute, STEPB sets CC=00, STEPC sets CC=04, STEPD sets CC=08 and STEPE sets either CC=04 or CC=08 otherwise do not execute STEPF. 'IF ELSE ...' is to 'COND=' as 'mouse' is to 'keyboard'. Cheers, Chris Poncelet -- 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
Re: If Else JCL question
On Fri, 21 Jan 2011 08:08:32 -0600, Robert Birdsall wrote: Similar to Gil's reply - skip if you've had enough... ... // IF (STEPA.RC = 4 AND STEPB.RC = 0 AND STEPC.RUN = FALSE AND // STEPD.RC = 8 AND STEPE.RUN = FALSE) OR ... Is it permissible to omit the continuation mark in col. 72 as you appear to have done? I thought that was permitted only if the continued line ended with a comma. (I looked briefly, not thoroughly, for this in the IF...ELSE chapter of the JCL RM.) Beware of COND=ONLY to suppress execution. Decades ago, a colleague did that, but a prior step ABENDed. Embarrassing because it was my program. I've since used COND=(0,LE). Still waiting for a followup in COND format from the person who posed the challenge... -- gil -- 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
Re: If Else JCL question
Beware of COND=ONLY to suppress execution. Decades ago, a colleague did that, but a prior step ABENDed. Embarrassing because it was my program. I've since used COND=(0,LE). I've had terrible experiences using COND=ONLY and, to a lesser extent, COND=EVEN. Always considered them the lazy way to handle exceptions (just my opinion though) so I've avoided them if at all possible. Stan Stan Weyman Senior Software Engineer stan.wey...@emc.com EMC² (508)249-3966 where information lives It is wise to keep in mind that neither success nor failure is ever final... -Original Message- From: IBM Mainframe Discussion List [mailto:IBM-MAIN@bama.ua.edu] On Behalf Of Paul Gilmartin Sent: Friday, January 21, 2011 10:22 AM To: IBM-MAIN@bama.ua.edu Subject: Re: If Else JCL question On Fri, 21 Jan 2011 08:08:32 -0600, Robert Birdsall wrote: Similar to Gil's reply - skip if you've had enough... ... // IF (STEPA.RC = 4 AND STEPB.RC = 0 AND STEPC.RUN = FALSE AND // STEPD.RC = 8 AND STEPE.RUN = FALSE) OR ... Is it permissible to omit the continuation mark in col. 72 as you appear to have done? I thought that was permitted only if the continued line ended with a comma. (I looked briefly, not thoroughly, for this in the IF...ELSE chapter of the JCL RM.) Beware of COND=ONLY to suppress execution. Decades ago, a colleague did that, but a prior step ABENDed. Embarrassing because it was my program. I've since used COND=(0,LE). Still waiting for a followup in COND format from the person who posed the challenge... -- gil -- 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 -- 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
Re: If Else JCL question
COND=EVEN and COND=ONLY only take effect when there is a system or user abend returned, they have nothing to do with cond code checking. If either failed to perform according to specs, I'd be raising cain with my sysprogs in short order. hernandez --- On Fri, 1/21/11, Stan Weyman stan.wey...@emc.com wrote: From: Stan Weyman stan.wey...@emc.com Subject: Re: If Else JCL question To: IBM-MAIN@bama.ua.edu Date: Friday, January 21, 2011, 10:34 AM Beware of COND=ONLY to suppress execution. Decades ago, a colleague did that, but a prior step ABENDed. Embarrassing because it was my program. I've since used COND=(0,LE). I've had terrible experiences using COND=ONLY and, to a lesser extent, COND=EVEN. Always considered them the lazy way to handle exceptions (just my opinion though) so I've avoided them if at all possible. Stan Stan Weyman Senior Software Engineer stan.wey...@emc.com EMC² (508)249-3966 where information lives It is wise to keep in mind that neither success nor failure is ever final... -Original Message- From: IBM Mainframe Discussion List [mailto:IBM-MAIN@bama.ua.edu] On Behalf Of Paul Gilmartin Sent: Friday, January 21, 2011 10:22 AM To: IBM-MAIN@bama.ua.edu Subject: Re: If Else JCL question On Fri, 21 Jan 2011 08:08:32 -0600, Robert Birdsall wrote: Similar to Gil's reply - skip if you've had enough... ... // IF (STEPA.RC = 4 AND STEPB.RC = 0 AND STEPC.RUN = FALSE AND // STEPD.RC = 8 AND STEPE.RUN = FALSE) OR ... Is it permissible to omit the continuation mark in col. 72 as you appear to have done? I thought that was permitted only if the continued line ended with a comma. (I looked briefly, not thoroughly, for this in the IF...ELSE chapter of the JCL RM.) Beware of COND=ONLY to suppress execution. Decades ago, a colleague did that, but a prior step ABENDed. Embarrassing because it was my program. I've since used COND=(0,LE). Still waiting for a followup in COND format from the person who posed the challenge... -- gil -- 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 -- 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 -- 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
Re: If Else JCL question
right you are about the COND EVEN and ONLY use. I was thinking of another issue when I inserted the 'lazy' comment. I've always considered the inverse nature of COND checking to be a problem (if this condition is met, bypass this step I think is the name of the game - I don't write much JCL anymore). If a job with multiple steps got complex enough to require the use of both COND EVEN/ONLY and the standard COND=(x,op) checks, then I would seriously look to splitting this piece of work into multiple jobs. IMHO of course. Thanks for the correction Cris. regards Stan Weyman Senior Software Engineer stan.wey...@emc.com EMC² (508)249-3966 where information lives It is wise to keep in mind that neither success nor failure is ever final... -Original Message- From: IBM Mainframe Discussion List [mailto:IBM-MAIN@bama.ua.edu] On Behalf Of Cris Hernandez #9 Sent: Friday, January 21, 2011 4:38 PM To: IBM-MAIN@bama.ua.edu Subject: Re: If Else JCL question COND=EVEN and COND=ONLY only take effect when there is a system or user abend returned, they have nothing to do with cond code checking. If either failed to perform according to specs, I'd be raising cain with my sysprogs in short order. hernandez --- On Fri, 1/21/11, Stan Weyman stan.wey...@emc.com wrote: From: Stan Weyman stan.wey...@emc.com Subject: Re: If Else JCL question To: IBM-MAIN@bama.ua.edu Date: Friday, January 21, 2011, 10:34 AM Beware of COND=ONLY to suppress execution. Decades ago, a colleague did that, but a prior step ABENDed. Embarrassing because it was my program. I've since used COND=(0,LE). I've had terrible experiences using COND=ONLY and, to a lesser extent, COND=EVEN. Always considered them the lazy way to handle exceptions (just my opinion though) so I've avoided them if at all possible. Stan Stan Weyman Senior Software Engineer stan.wey...@emc.com EMC² (508)249-3966 where information lives It is wise to keep in mind that neither success nor failure is ever final... -Original Message- From: IBM Mainframe Discussion List [mailto:IBM-MAIN@bama.ua.edu] On Behalf Of Paul Gilmartin Sent: Friday, January 21, 2011 10:22 AM To: IBM-MAIN@bama.ua.edu Subject: Re: If Else JCL question On Fri, 21 Jan 2011 08:08:32 -0600, Robert Birdsall wrote: Similar to Gil's reply - skip if you've had enough... ... // IF (STEPA.RC = 4 AND STEPB.RC = 0 AND STEPC.RUN = FALSE AND // STEPD.RC = 8 AND STEPE.RUN = FALSE) OR ... Is it permissible to omit the continuation mark in col. 72 as you appear to have done? I thought that was permitted only if the continued line ended with a comma. (I looked briefly, not thoroughly, for this in the IF...ELSE chapter of the JCL RM.) Beware of COND=ONLY to suppress execution. Decades ago, a colleague did that, but a prior step ABENDed. Embarrassing because it was my program. I've since used COND=(0,LE). Still waiting for a followup in COND format from the person who posed the challenge... -- gil -- 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 -- 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 -- 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 -- 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
Re: SV: If Else JCL question
On Fri, 21 Jan 2011 13:28:51 +0100, Thomas Berg wrote: I would have preferred something like this instead of the delivered IF..THEN logic: //S050 EXEC WHATEVER,RUNIF=(RC,LE,4,S010) RUNIF=(RC,8,S010) RUNIF=(RUN,S020) RUNIF=(RUN,ANY) RUNIF=(NOTRUN,S030) RUNIF=(FLUSHED,S040) RUNIF=(JCLERROR,S040) ..and in combinations as in COND. etc. Why? Eliding the EQ may be more confusing than convenient. Is there any difference between NOTRUN and FLUSHED? If so, should there also be a NOTFLUSHED? The ability to test and recover from a JCLERROR is a novel concept. Would IBM buy it as a construct in IF...THEN? Why not? And why not just extend COND with the new constructs? IF...THEN has some nice properties: o ELSE provides a nice alternative; no need to invert the COND with deMorgan's Laws (and COND supports disjunction but not conjunction). o IF...THEN can control multiple steps with no need to restate the COND on every EXEC statement (but symbol substitution could simplify this). o One or more of the controlled steps can be a PROC call with no need to override COND on the individual PROC steps, and no conflict with COND in legacy library PROCs o The ability to test for specific ABEND codes. All in all, I see considerable fear of innovation here. Perhaps, If I couldn't run it on my turnkey MVS 3.8 under Hercules, I'd rather not deal with it. -- gil -- 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
If Else JCL question
This thread, like other long-running ones, has degenerated into a slanging match over trivia. As a matter of formal syntax COND= is not so powerful as IF-THEN-ELSE, and assertions to the contrary do no credit to the logical prowess of those who make them. Anciently there was in fact a distinction between 'flushed' and 'not run'. The first meant that the (usually proper) balance of a job stream had been discarded in medias res. 'Not run' meant that an entire entity was not run, executed, as in 'JCL error, job not run'. This distinction, like that between disinterested and uninterested, was valuable; but it was too subtle to survive. Beyond these unarguables we arrive at differences of opinion: preferences for rubies over diamonds. I may prefer my own syntactic sugar to yours or the familiar to the unfamiliar (and thus ipso facto suspect). These preferencres are not rational, but neither are they vicious, and the only mechanisms for resolving differences in them are, again, Justice Holmes' trinity of battle, compromise, or a jeweler who has both (rubies and diamonds). If it were enforceable--Tiny changes in subject-line text would make enforcement impossible--there would be much to be said for limiting all threads to, say, 30 posts. After some such number of them those who had something useful or diverting to say would have said it; and sclerosis would already be, like the train from Rapallo, in arrivo. John Gilmore Ashland, MA 01721-1817 USA -- 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
Re: If Else JCL question
-Original Message- From: IBM Mainframe Discussion List On Behalf Of Gainsford, Allen the only cond code testing I ever do when writing procs is, if it's true, it's through, meaning the step/job won't execute if the COND is true. Heh. I learned that one as If true, don't do. Works out the same, and is catchy enough for me to remember it... Given the statement EXEC PGM=IEFBR14,COND=(4,LT), I was taught to read it: Execute program IEFBR14 unless 4 is less than the current condition code. -jc- -- 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
Re: If Else JCL question
LOL. I've been writing JCL for 25 years and I still cannot get the COND right. From: IBM Mainframe Discussion List [IBM-MAIN@bama.ua.edu] On Behalf Of Paul Gilmartin [paulgboul...@aim.com] Sent: 20 January 2011 02:45 To: IBM-MAIN@bama.ua.edu Subject: Re: If Else JCL question On Wed, 19 Jan 2011 13:13:03 -0800, Cris Hernandez #9 wrote: suppose I'm old school, never saw a need to code IF-THEN-ELSE in JCL, only use cond code checking and never have any issues with step execution or job flow. the only cond code testing I ever do when writing procs is, if it's true, it's through, meaning the step/job won't execute if the COND is true. I guess IBM added all that IF-THEN-ELSE stuff because too many coders never learned that lesson. http://db.cs.berkeley.edu/postgres.html -- gil -- 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 -- 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
Re: If Else JCL question
One thing I've been taught since I was in school 30+ years ago. Do not use NOT logic. COND goes against everything I've worked at my entire career. On Thu, Jan 20, 2011 at 2:07 PM, Lindy Mayfield lindy.mayfi...@ssf.sas.comwrote: LOL. I've been writing JCL for 25 years and I still cannot get the COND right. From: IBM Mainframe Discussion List [IBM-MAIN@bama.ua.edu] On Behalf Of Paul Gilmartin [paulgboul...@aim.com] Sent: 20 January 2011 02:45 To: IBM-MAIN@bama.ua.edu Subject: Re: If Else JCL question On Wed, 19 Jan 2011 13:13:03 -0800, Cris Hernandez #9 wrote: suppose I'm old school, never saw a need to code IF-THEN-ELSE in JCL, only use cond code checking and never have any issues with step execution or job flow. the only cond code testing I ever do when writing procs is, if it's true, it's through, meaning the step/job won't execute if the COND is true. I guess IBM added all that IF-THEN-ELSE stuff because too many coders never learned that lesson. http://db.cs.berkeley.edu/postgres.html -- gil -- 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 -- 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 -- Mark D Pace Senior Systems Engineer Mainline Information Systems -- 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
Re: If Else JCL question
One thing I've been taught since I was in school 30+ years ago. Do not use NOT logic. COND goes against everything I've worked at my entire career. I started as a JCL jockey (Prod Support/Job Scheduling) in 1981, and I believe the 'NOT Logic' is why a lot of people have problems. I used to keep a photocopy of a table, from the JCL Reference, that had entries of what normal humans wanted mapped to COND equivalents, because I still have problems, after 30 years of working with JCL. I don't know if that table still exists. - Ted MacNEIL eamacn...@yahoo.ca -- 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
Re: If Else JCL question
But one of the most useful purposes of COND= testing is COND=(0,LE,whatever) ... which ensures the current jobstep will NOT execute unless previous jobstep whatever did NOT execute. So 'NOT logic' can still do what 'IF ELSE etc.' cannot. g CP Mark Pace wrote: One thing I've been taught since I was in school 30+ years ago. Do not use NOT logic. COND goes against everything I've worked at my entire career. On Thu, Jan 20, 2011 at 2:07 PM, Lindy Mayfield lindy.mayfi...@ssf.sas.comwrote: LOL. I've been writing JCL for 25 years and I still cannot get the COND right. From: IBM Mainframe Discussion List [IBM-MAIN@bama.ua.edu] On Behalf Of Paul Gilmartin [paulgboul...@aim.com] Sent: 20 January 2011 02:45 To: IBM-MAIN@bama.ua.edu Subject: Re: If Else JCL question On Wed, 19 Jan 2011 13:13:03 -0800, Cris Hernandez #9 wrote: suppose I'm old school, never saw a need to code IF-THEN-ELSE in JCL, only use cond code checking and never have any issues with step execution or job flow. the only cond code testing I ever do when writing procs is, if it's true, it's through, meaning the step/job won't execute if the COND is true. I guess IBM added all that IF-THEN-ELSE stuff because too many coders never learned that lesson. http://db.cs.berkeley.edu/postgres.html -- gil -- 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 -- 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 -- 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
Re: If Else JCL question
On Thu, 20 Jan 2011 14:22:36 -0500, Mark Pace wrote: One thing I've been taught since I was in school 30+ years ago. Do not use NOT logic. COND goes against everything I've worked at my entire career. Assemblerthink. Or maybe BASICthink. The IF ... GOTO ... paradigm tersified and carried to an illogical extreme. -- gil -- 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
Re: If Else JCL question
On Thu, 20 Jan 2011 20:04:08 +, CM Poncelet wrote: But one of the most useful purposes of COND= testing is COND=(0,LE,whatever) ... which ensures the current jobstep will NOT execute unless previous jobstep whatever did NOT execute. So 'NOT logic' can still do what 'IF ELSE etc.' cannot. g CP What am I missing? From: Title: z/OS V1R12.0 MVS JCL Reference Document Number: SA22-7597-14 17.1.4.5 Relational-Expression Keywords ... ^stepname.RUN stepname.RUN=FALSE Indicates that the relational expression tests that a specific job step (stepname) did not start execution. -- gil -- 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
Re: If Else JCL question
It's not only not logic, but is also what I would call inverse conditional. Ideally there would be an option to say execute if the return code is equal to zero or execute if the return code is less than 5. Even some not logic would be OK (IMO) if we could say execute if the return code is NOT greater than 4. In fact, I would rather prefer this. But what COND says is execute if 4 is less than the return code. Or something like that! To me it's doubly confusing. So confusing that I can't even figure out the rest of what I was going to say about it! :-) I think whoever came up with the way COND works must be an alien from an alternate (bizarro!) universe. Where was blue kryptonite when we needed it! Frank -- Frank Swarbrick Applications Architect - Mainframe Applications Development FirstBank Data Corporation - Lakewood, CO USA P: 303-235-1403 On 1/20/2011 at 12:22 PM, in message aanlktin6bacetogkmnh3csee2a_8f4bbvexjtttys...@mail.gmail.com, Mark Pace pacemainl...@gmail.com wrote: One thing I've been taught since I was in school 30+ years ago. Do not use NOT logic. COND goes against everything I've worked at my entire career. On Thu, Jan 20, 2011 at 2:07 PM, Lindy Mayfield lindy.mayfi...@ssf.sas.comwrote: LOL. I've been writing JCL for 25 years and I still cannot get the COND right. From: IBM Mainframe Discussion List [IBM-MAIN@bama.ua.edu] On Behalf Of Paul Gilmartin [paulgboul...@aim.com] Sent: 20 January 2011 02:45 To: IBM-MAIN@bama.ua.edu Subject: Re: If Else JCL question On Wed, 19 Jan 2011 13:13:03 -0800, Cris Hernandez #9 wrote: suppose I'm old school, never saw a need to code IF-THEN-ELSE in JCL, only use cond code checking and never have any issues with step execution or job flow. the only cond code testing I ever do when writing procs is, if it's true, it's through, meaning the step/job won't execute if the COND is true. I guess IBM added all that IF-THEN-ELSE stuff because too many coders never learned that lesson. http://db.cs.berkeley.edu/postgres.html -- gil -- 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 -- 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 The information contained in this electronic communication and any document attached hereto or transmitted herewith is confidential and intended for the exclusive use of the individual or entity named above. If the reader of this message is not the intended recipient or the employee or agent responsible for delivering it to the intended recipient, you are hereby notified that any examination, use, dissemination, distribution or copying of this communication or any part thereof is strictly prohibited. If you have received this communication in error, please immediately notify the sender by reply e-mail and destroy this communication. Thank you. -- 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
If Else JCL question
I was looking this morning at data on non-multiple and multiple human births in which live births were classified as single(si), double(do), triple(tr), quadruple (qa), or quintuple (qi). Now if one were interested only in single births it would be folly to write ¬do ¬tr ¬qa ¬qi instead of writing just si If, on the other hand, one were interested in all multiple births it would also be folly to write do | tr | qa | qi instead of writing just ¬si because someone had taught you that negative logic was 'bad'. NOT logic may be awkward, or again it may be felicitous. What is always and everywhere inexcusable is the replacement of thinking with slogans.ROT is an apposite acronym for rule of thumb. The mentors who retailed these dubious notions would have done better to teach fewer|none of them and more substantive logic. John Gilmore Ashland, MA 01721-1817 USA -- 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
Re: If Else JCL question
I wasn't looking for a lesson. Thank you very little. On Thu, Jan 20, 2011 at 3:57 PM, john gilmore john_w_gilm...@msn.comwrote: I was looking this morning at data on non-multiple and multiple human births in which live births were classified as single(si), double(do), triple(tr), quadruple (qa), or quintuple (qi). Now if one were interested only in single births it would be folly to write ¬do ¬tr ¬qa ¬qi instead of writing just si If, on the other hand, one were interested in all multiple births it would also be folly to write do | tr | qa | qi instead of writing just ¬si because someone had taught you that negative logic was 'bad'. NOT logic may be awkward, or again it may be felicitous. What is always and everywhere inexcusable is the replacement of thinking with slogans. ROT is an apposite acronym for rule of thumb. The mentors who retailed these dubious notions would have done better to teach fewer|none of them and more substantive logic. John Gilmore Ashland, MA 01721-1817 USA -- 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 -- Mark D Pace Senior Systems Engineer Mainline Information Systems -- 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
If Else JCL question
Mark Pace wrote: | I wasn't looking for a lesson. Thank you very little. and I was not offering one to Mr Pace but to others here who may prefer logic to sloganeering. The relational expressions a b and b a are equivalent; and either can be obtained from the other by simple, readily learned transformations. In particular, (4,,RC) can be derived mechanically from (RC,,4). It has been my experience as a teacher that people who have difficulties with JCL and related programming difficulties do not know enough formal logic asnd lack manipulative facility in it. Both can be and should be taught, except perhaps to Mr Pace, who prefers shibboleths. He of course has a right to his views, which he has exercised in setting them out here; and I equally have a right to dispute them when, as here, I judge them to be nonsense. John Gilmore Ashland, MA 01721-1817 USA -- 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
Re: If Else JCL question
Where was blue kryptonite when we needed it! Somebody save me! C'mon! - Ted MacNEIL eamacn...@yahoo.ca -- 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
Re: If Else JCL question
Either I'm confused too, or COND says do NOT execute if 4 is less than the return code; that is - COND=(4,LT). Unless you meant something else... Greg Shirey Ben E. Keith Company -Original Message- From: IBM Mainframe Discussion List On Behalf Of Frank Swarbrick Sent: Thursday, January 20, 2011 2:42 PM It's not only not logic, but is also what I would call inverse conditional. Ideally there would be an option to say execute if the return code is equal to zero or execute if the return code is less than 5. Even some not logic would be OK (IMO) if we could say execute if the return code is NOT greater than 4. In fact, I would rather prefer this. But what COND says is execute if 4 is less than the return code. Or something like that! To me it's doubly confusing. So confusing that I can't even figure out the rest of what I was going to say about it! :-) -- 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
Re: If Else JCL question
Gotta do this: %$%$#@$CONDCODES //STEP EXEC PGM=IEFBR14,COND=(9,LT) SAYS RUN IEFBR14 UNLESS 9 IS LESS THAN THE CURRENT MAXIMUM RETURN CODE. IF IT'S TRUE, DON'T DO... %$%$#@$CONDCODES John Donnelly National Semiconductor Corporation 2900 Semiconductor Drive Santa Clara, CA 95051 408-721-5640 408-470-8364 Cell cjp...@nsc.com -Original Message- From: IBM Mainframe Discussion List [mailto:IBM-MAIN@bama.ua.edu] On Behalf Of Greg Shirey Sent: Thursday, January 20, 2011 2:01 PM To: IBM-MAIN@bama.ua.edu Subject: Re: If Else JCL question Either I'm confused too, or COND says do NOT execute if 4 is less than the return code; that is - COND=(4,LT). Unless you meant something else... Greg Shirey Ben E. Keith Company -Original Message- From: IBM Mainframe Discussion List On Behalf Of Frank Swarbrick Sent: Thursday, January 20, 2011 2:42 PM It's not only not logic, but is also what I would call inverse conditional. Ideally there would be an option to say execute if the return code is equal to zero or execute if the return code is less than 5. Even some not logic would be OK (IMO) if we could say execute if the return code is NOT greater than 4. In fact, I would rather prefer this. But what COND says is execute if 4 is less than the return code. Or something like that! To me it's doubly confusing. So confusing that I can't even figure out the rest of what I was going to say about it! :-) -- 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 -- 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
Re: If Else JCL question
On 1/19/2011 10:11 AM, Donald Johnson wrote: We used to use a program called KABOOM, which did not exist (as I suspect with BLOWUP). One JCL statement, and a very prominent S806 abend. We use: //ABEND806 EXEC PGM=ABEND806 This program does exactly what its name implies. ;-) -- Edward E Jaffe Phoenix Software International, Inc 831 Parkview Drive North El Segundo, CA 90245 310-338-0400 x318 edja...@phoenixsoftware.com http://www.phoenixsoftware.com/ -- 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
Re: If Else JCL question
We use EXEC PGM=IEFBR15, but the funny thing was when I used EXEC PGM=KABOOM or something like that (because obviously it doesn't matter what you use as long as the program doesn't exist), some incident manager informed me that the standard to force an S806 abend was to use program IEFBR15 and that I should not start using my own programs :-) Regards, Erik. Van: IBM Mainframe Discussion List [IBM-MAIN@bama.ua.edu] namens Edward Jaffe [edja...@phoenixsoftware.com] Verzonden: vrijdag 21 januari 2011 0:11 Aan: IBM-MAIN@bama.ua.edu Onderwerp: Re: If Else JCL question On 1/19/2011 10:11 AM, Donald Johnson wrote: We used to use a program called KABOOM, which did not exist (as I suspect with BLOWUP). One JCL statement, and a very prominent S806 abend. We use: //ABEND806 EXEC PGM=ABEND806 This program does exactly what its name implies. ;-) -- Edward E Jaffe Phoenix Software International, Inc 831 Parkview Drive North El Segundo, CA 90245 310-338-0400 x318 edja...@phoenixsoftware.com http://www.phoenixsoftware.com/ -- 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 - ATTENTION: The information in this electronic mail message is private and confidential, and only intended for the addressee. Should you receive this message by mistake, you are hereby notified that any disclosure, reproduction, distribution or use of this message is strictly prohibited. Please inform the sender by reply transmission and delete the message without copying or opening it. Messages and attachments are scanned for all viruses known. If this message contains password-protected attachments, the files have NOT been scanned for viruses by the ING mail domain. Always scan attachments before opening them. - -- 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
Re: If Else JCL question
Honestly, I no longer know. I just know it's confusing as heck, and I have yet to see a defense of it. (Well, John Gilmore seemed to think it was understandable, if not perhaps defensible). On 1/20/2011 at 3:00 PM, in message f5ff22ced304764eaac97a43706235b7174c143...@corpexmbx.bekco.com, Greg Shirey wgshi...@benekeith.com wrote: Either I'm confused too, or COND says do NOT execute if 4 is less than the return code; that is - COND=(4,LT). Unless you meant something else... Greg Shirey Ben E. Keith Company -Original Message- From: IBM Mainframe Discussion List On Behalf Of Frank Swarbrick Sent: Thursday, January 20, 2011 2:42 PM It's not only not logic, but is also what I would call inverse conditional. Ideally there would be an option to say execute if the return code is equal to zero or execute if the return code is less than 5. Even some not logic would be OK (IMO) if we could say execute if the return code is NOT greater than 4. In fact, I would rather prefer this. But what COND says is execute if 4 is less than the return code. Or something like that! To me it's doubly confusing. So confusing that I can't even figure out the rest of what I was going to say about it! :-) -- 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 The information contained in this electronic communication and any document attached hereto or transmitted herewith is confidential and intended for the exclusive use of the individual or entity named above. If the reader of this message is not the intended recipient or the employee or agent responsible for delivering it to the intended recipient, you are hereby notified that any examination, use, dissemination, distribution or copying of this communication or any part thereof is strictly prohibited. If you have received this communication in error, please immediately notify the sender by reply e-mail and destroy this communication. Thank you. -- 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
Re: If Else JCL question
I usually keep an IEFBR15 laying around for test purposes. And like Eds', this does as advertised. Best to keep such away from your incident manager ;-) Shane ... On Fri, Jan 21st, 2011 at 10:47 AM, Erik Janssen wrote: We use EXEC PGM=IEFBR15, but the funny thing was when I used EXEC PGM=KABOOM or something like that (because obviously it doesn't matter what you use as long as the program doesn't exist), some incident manager informed me that the standard to force an S806 abend was to use program IEFBR15 and that I should not start using my own programs :-) -- 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
Re: If Else JCL question
Shane, Have you been hiding that IEFBR15 from me? I was using IFEBR14. As we know DNA stands for National Dyslexic Association...:) Wayne On Fri, Jan 21, 2011 at 11:16 AM, Shane Ginnane ibm-m...@tpg.com.au wrote: I usually keep an IEFBR15 laying around for test purposes. And like Eds', this does as advertised. Best to keep such away from your incident manager ;-) Shane ... On Fri, Jan 21st, 2011 at 10:47 AM, Erik Janssen wrote: We use EXEC PGM=IEFBR15, but the funny thing was when I used EXEC PGM=KABOOM or something like that (because obviously it doesn't matter what you use as long as the program doesn't exist), some incident manager informed me that the standard to force an S806 abend was to use program IEFBR15 and that I should not start using my own programs :-) -- 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 -- Wayne V. Bickerdike -- 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
Re: If Else JCL question
On Fri, 21 Jan 2011 11:16:46 +1100, Shane Ginnane wrote: I usually keep an IEFBR15 laying around for test purposes. And like Eds', this does as advertised. Best to keep such away from your incident manager ;-) By as advertised, do we mean: IEFBR15 CSECT BR15 END Just curious. I can envision some tests for which it would be useful. I like ABEND806. Until some novice tries to generalize: //STEP EXEC PGM=ABEND213 ... and complains that it still ABENDs with 806, not 213. -- gil -- 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
Re: If Else JCL question
By as advertised, do we mean: IEFBR15 CSECT BR15 END we do. I like ABEND806. Until some novice tries to generalize: //STEP EXEC PGM=ABEND213 ... and complains that it still ABENDs with 806, not 213. ROTF - hadn't thought of that. You must deal with more novices than me. Shane ... -- 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
Re: If Else JCL question
Any boolean tests can be performed with 'COND=', but not so with 'IF ELSE etc.' We have already discussed this in the past. But please show me how 'IF ELSE ...' handles the following: Execute STEPF if - STEPA sets CC=04, STEPB sets CC=00, STEPC did not execute, STEPD sets CC=08 and STEPE did not execute or if - STEPA sets CC=00, STEPB did not execute, STEPC sets CC=04, STEPD did not execute and STEPE sets CC=00 or if - STEPA did not execute, STEPB sets CC=00, STEPC sets CC=04, STEPD sets CC=08 and STEPE sets either CC=04 or CC=08 otherwise do not execute STEPF. 'IF ELSE ...' is to 'COND=' as 'mouse' is to 'keyboard'. Cheers, Chris Poncelet Paul Gilmartin wrote: On Thu, 20 Jan 2011 20:04:08 +, CM Poncelet wrote: But one of the most useful purposes of COND= testing is COND=(0,LE,whatever) ... which ensures the current jobstep will NOT execute unless previous jobstep whatever did NOT execute. So 'NOT logic' can still do what 'IF ELSE etc.' cannot. g CP What am I missing? From: Title: z/OS V1R12.0 MVS JCL Reference Document Number: SA22-7597-14 17.1.4.5 Relational-Expression Keywords ... ^stepname.RUN stepname.RUN=FALSE Indicates that the relational expression tests that a specific job step (stepname) did not start execution. -- gil -- 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 -- 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
Re: If Else JCL question
Erik Janssen wrote: We use EXEC PGM=IEFBR15, but the funny thing was when I used EXEC PGM=KABOOM or something like that (because obviously it doesn't matter what you use as long as the program doesn't exist), some incident manager informed me that the standard to force an S806 abend was to use program IEFBR15 and that I should not start using my own programs :-) snip A Long Time Ago, In A...well, you get the idea...there was an IBM recommendation from ITSO or WSC (I don't recall which) to run one IEFBR15 per CP in a unique reporting performance group (RPGN), and subtract the time spent in that RPGN from 100% to find true CPU busy on systems that might have low utilization effects. A later dispatcher update made this unnecessary, but there might still be copies of that program lying around here and there with that name. BR15 is, of course, a very efficient loop. It's probably worth a quick check on your system to make sure it's not there, just in case, in these days of VWLC. Just a thought. -- John Eells z/OS Technical Marketing IBM Poughkeepsie ee...@us.ibm.com -- 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
Re: If Else JCL question
subtract the time spent in that RPGN from 100% to find true CPU busy on systems that might have low utilization effects. Except for the fact that software measurements suffer from the fact that not all CPU consumed is capured. - Ted MacNEIL eamacn...@yahoo.ca -- 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
Re: If Else JCL question
On 20 January 2011 21:31, John Eells ee...@us.ibm.com wrote: Erik Janssen wrote: We use EXEC PGM=IEFBR15, but the funny thing was when I used EXEC PGM=KABOOM or something like that (because obviously it doesn't matter what you use as long as the program doesn't exist), some incident manager informed me that the standard to force an S806 abend was to use program IEFBR15 and that I should not start using my own programs :-) snip A Long Time Ago, In A...well, you get the idea...there was an IBM recommendation from ITSO or WSC (I don't recall which) to run one IEFBR15 per CP in a unique reporting performance group (RPGN), and subtract the time spent in that RPGN from 100% to find true CPU busy on systems that might have low utilization effects. A later dispatcher update made this unnecessary, but there might still be copies of that program lying around here and there with that name. BR15 is, of course, a very efficient loop. It's probably worth a quick check on your system to make sure it's not there, just in case, in these days of VWLC. Just a thought. At all the places I've worked, IEFBR15 caused either an S322 or an S222 abend, depending on how on-the-ball the operators were. So it's not entirely wrong to say that IEFBR15 may cause an abend, but it can be an expensive way of doing it. Tony H. -- 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
Re: If Else JCL question
On Fri, 21 Jan 2011 02:01:45 +, CM Poncelet ponce...@bcs.org.uk wrote: Any boolean tests can be performed with 'COND=', but not so with 'IF ELSE etc.' We have already discussed this in the past. Sorry; I missed that. But please show me how 'IF ELSE ...' handles the following: Execute STEPF if - STEPA sets CC=04, STEPB sets CC=00, STEPC did not execute, STEPD sets CC=08 and STEPE did not execute or if - STEPA sets CC=00, STEPB did not execute, STEPC sets CC=04, STEPD did not execute and STEPE sets CC=00 or if - STEPA did not execute, STEPB sets CC=00, STEPC sets CC=04, STEPD sets CC=08 and STEPE sets either CC=04 or CC=08 otherwise do not execute STEPF. OK: // //IFELSEJOB 505303JOB,'Paul Gilmartin', // MSGLEVEL=(1,1),REGION=0M //* //USERCOUTPUT JESDS=ALL,DEFAULT=YES, // CLASS=R,PAGEDEF=V0648Z,CHARS=GT12 //* //STEPA EXEC PGM=IEFBR14 //STEPB EXEC PGM=IEFBR14 //STEPC EXEC PGM=IEFBR14 //STEPD EXEC PGM=IEFBR14 //STEPE EXEC PGM=IEFBR14 //TEST IF ( STEPA.RC=04 STEPB.RC=00x // STEPC.RUN=FALSE STEPD.RC=08 STEPE.RUN=FALSE ) | x // ( STEPA.RC=00 STEPB.RUN=FALSEx // STEPC.RC=04 STEPD.RUN=FALSE STEPE.RC=00 ) | x // ( STEPA.RUN=FALSE STEPB.RC=00x // STEPC.RC=04 STEPD.RC=08x // ( STEPE.RC=04 | STEPE.RC=08 ) ) THEN //STEPF EXEC PGM=IEFBR14 //TEST ENDIF // :w ! submit Tested; STEPA through STEPE execute; STEPF is skipped because of condiional expression. I didn't check with truth table. Also typos possible. Now, kindly reciprocate and show me how this is coded with the COND parameter on the EXEC statement, please, 'IF ELSE ...' is to 'COND=' as 'mouse' is to 'keyboard'. I fail to see the analogy. Thanks, gil -- 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
If Else JCL question
Seems to be a very rookie question, but I can't find the answer. I have a series of JCLs that I want to put together as 1 JCL with IF THEN to test RC. What I can't find is a way to stop the JCL if a step has a bad RC. ie: STEP1 IF (STEP1.RC EQ 0) then STEP2 ELSE ABEND or GOTO EOJ or somehow end this thing ENDIF IF (STEP2.RC etc, etc) VSE has labels so I can use a GOTO, but I see nothing like that in z/OS JCL. -- Mark D Pace Senior Systems Engineer Mainline Information Systems -- 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
Re: If Else JCL question
I like using COND= on the JOB card. Suppose each step must end with an RC LE 0. //MYJOB JOB COND=(4,LE) This flushes the remaining steps in a job after the step which gets an RC greater than 4. Of course, you can't have a different RC for flushing based on the individual steps. That requires nesting the IF //STEP1 EXEC PGM= // IF (STEP1.RC LE 4) THEN //STEP2 EXEC PGM= // IF (STEP2.RC LE 8) THEN //STEP3 EXEC PGM= // IF (STEP3.RC EQ 0) THEN //STEP4 EXEC PGM= // ENDIF // ENDIF // ENDIF John McKown Systems Engineer IV IT Administrative Services Group HealthMarkets(r) 9151 Boulevard 26 * N. Richland Hills * TX 76010 (817) 255-3225 phone * 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 -Original Message- From: IBM Mainframe Discussion List [mailto:IBM-MAIN@bama.ua.edu] On Behalf Of Mark Pace Sent: Wednesday, January 19, 2011 7:58 AM To: IBM-MAIN@bama.ua.edu Subject: If Else JCL question Seems to be a very rookie question, but I can't find the answer. I have a series of JCLs that I want to put together as 1 JCL with IF THEN to test RC. What I can't find is a way to stop the JCL if a step has a bad RC. ie: STEP1 IF (STEP1.RC EQ 0) then STEP2 ELSE ABEND or GOTO EOJ or somehow end this thing ENDIF IF (STEP2.RC etc, etc) VSE has labels so I can use a GOTO, but I see nothing like that in z/OS JCL. -- Mark D Pace Senior Systems Engineer Mainline Information Systems -- 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 -- 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
Re: If Else JCL question
Thanks, John. I couldn't tell from the quick reference I was reading if you could nest the IF statements. Fortunately this series of steps should all end with RC=0. On Wed, Jan 19, 2011 at 9:13 AM, McKown, John john.mck...@healthmarkets.com wrote: I like using COND= on the JOB card. Suppose each step must end with an RC LE 0. //MYJOB JOB COND=(4,LE) This flushes the remaining steps in a job after the step which gets an RC greater than 4. Of course, you can't have a different RC for flushing based on the individual steps. That requires nesting the IF //STEP1 EXEC PGM= // IF (STEP1.RC LE 4) THEN //STEP2 EXEC PGM= // IF (STEP2.RC LE 8) THEN //STEP3 EXEC PGM= // IF (STEP3.RC EQ 0) THEN //STEP4 EXEC PGM= // ENDIF // ENDIF // ENDIF John McKown Systems Engineer IV IT Administrative Services Group HealthMarkets(r) 9151 Boulevard 26 * N. Richland Hills * TX 76010 (817) 255-3225 phone * 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 -Original Message- From: IBM Mainframe Discussion List [mailto:IBM-MAIN@bama.ua.edu] On Behalf Of Mark Pace Sent: Wednesday, January 19, 2011 7:58 AM To: IBM-MAIN@bama.ua.edu Subject: If Else JCL question Seems to be a very rookie question, but I can't find the answer. I have a series of JCLs that I want to put together as 1 JCL with IF THEN to test RC. What I can't find is a way to stop the JCL if a step has a bad RC. ie: STEP1 IF (STEP1.RC EQ 0) then STEP2 ELSE ABEND or GOTO EOJ or somehow end this thing ENDIF IF (STEP2.RC etc, etc) VSE has labels so I can use a GOTO, but I see nothing like that in z/OS JCL. -- Mark D Pace Senior Systems Engineer Mainline Information Systems -- 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 -- 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 -- Mark D Pace Senior Systems Engineer Mainline Information Systems -- 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
Re: If Else JCL question
We force an ABEND by calling a program that always ABENDs //STEP1 ... //IF (STEP1.RC EQ 0) then //STEP2 ... //ELSE //SAEXEC PGM=BLOWUP //ENDIF . IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 01/19/2011 07:57:49 AM: From: Mark Pace pacemainl...@gmail.com To: IBM-MAIN@bama.ua.edu Date: 01/19/2011 07:58 AM Subject: If Else JCL question Sent by: IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu Seems to be a very rookie question, but I can't find the answer. I have a series of JCLs that I want to put together as 1 JCL with IF THEN to test RC. What I can't find is a way to stop the JCL if a step has a bad RC. ie: STEP1 IF (STEP1.RC EQ 0) then STEP2 ELSE ABEND or GOTO EOJ or somehow end this thing ENDIF IF (STEP2.RC etc, etc) VSE has labels so I can use a GOTO, but I see nothing like that in z/OS JCL. -- Mark D Pace Senior Systems Engineer Mainline Information Systems -- 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 This e-mail message and all attachments transmitted with it may contain legally privileged and/or confidential information intended solely for the use of the addressee(s). If the reader of this message is not the intended recipient, you are hereby notified that any reading, dissemination, distribution, copying, forwarding or other use of this message or its attachments is strictly prohibited. If you have received this message in error, please notify the sender immediately and delete this message and all copies and backups thereof. Thank you. -- 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
Re: If Else JCL question
Our QuickRef states that the nesting level is 15. IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 01/19/2011 08:19:08 AM: From: Mark Pace pacemainl...@gmail.com To: IBM-MAIN@bama.ua.edu Date: 01/19/2011 08:19 AM Subject: Re: If Else JCL question Sent by: IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu Thanks, John. I couldn't tell from the quick reference I was reading if you could nest the IF statements. Fortunately this series of steps should all end with RC=0. On Wed, Jan 19, 2011 at 9:13 AM, McKown, John john.mck...@healthmarkets.com wrote: I like using COND= on the JOB card. Suppose each step must end with an RC LE 0. //MYJOB JOB COND=(4,LE) This flushes the remaining steps in a job after the step which gets an RC greater than 4. Of course, you can't have a different RC for flushing based on the individual steps. That requires nesting the IF //STEP1 EXEC PGM= // IF (STEP1.RC LE 4) THEN //STEP2 EXEC PGM= // IF (STEP2.RC LE 8) THEN //STEP3 EXEC PGM= // IF (STEP3.RC EQ 0) THEN //STEP4 EXEC PGM= // ENDIF // ENDIF // ENDIF John McKown Systems Engineer IV IT Administrative Services Group HealthMarkets(r) 9151 Boulevard 26 * N. Richland Hills * TX 76010 (817) 255-3225 phone * 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 -Original Message- From: IBM Mainframe Discussion List [mailto:IBM-MAIN@bama.ua.edu] On Behalf Of Mark Pace Sent: Wednesday, January 19, 2011 7:58 AM To: IBM-MAIN@bama.ua.edu Subject: If Else JCL question Seems to be a very rookie question, but I can't find the answer. I have a series of JCLs that I want to put together as 1 JCL with IF THEN to test RC. What I can't find is a way to stop the JCL if a step has a bad RC. ie: STEP1 IF (STEP1.RC EQ 0) then STEP2 ELSE ABEND or GOTO EOJ or somehow end this thing ENDIF IF (STEP2.RC etc, etc) VSE has labels so I can use a GOTO, but I see nothing like that in z/OS JCL. -- Mark D Pace Senior Systems Engineer Mainline Information Systems -- 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 -- 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 -- Mark D Pace Senior Systems Engineer Mainline Information Systems -- 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 This e-mail message and all attachments transmitted with it may contain legally privileged and/or confidential information intended solely for the use of the addressee(s). If the reader of this message is not the intended recipient, you are hereby notified that any reading, dissemination, distribution, copying, forwarding or other use of this message or its attachments is strictly prohibited. If you have received this message in error, please notify the sender immediately and delete this message and all copies and backups thereof. Thank you. -- 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
Re: If Else JCL question
Actually, JOB COND=(4,LE) will flush all steps after RC greater than or equal to 4. JOB COND=(4,LT) will flush all steps after RC greater that 4... Personally, even though I still use COND= myself I *should* start using IF/THEN since I can never figure out the COND= logic without running some test job to see if what I though that would happen actually does... Regards, Erik. -Oorspronkelijk bericht- Van: IBM Mainframe Discussion List [mailto:IBM-MAIN@bama.ua.edu] Namens McKown, John Verzonden: woensdag 19 januari 2011 15:14 Aan: IBM-MAIN@bama.ua.edu Onderwerp: Re: If Else JCL question I like using COND= on the JOB card. Suppose each step must end with an RC LE 0. //MYJOB JOB COND=(4,LE) This flushes the remaining steps in a job after the step which gets an RC greater than 4. Of course, you can't have a different RC for flushing based on the individual steps. That requires nesting the IF //STEP1 EXEC PGM= // IF (STEP1.RC LE 4) THEN //STEP2 EXEC PGM= // IF (STEP2.RC LE 8) THEN //STEP3 EXEC PGM= // IF (STEP3.RC EQ 0) THEN //STEP4 EXEC PGM= // ENDIF // ENDIF // ENDIF John McKown Systems Engineer IV IT Administrative Services Group HealthMarkets(r) 9151 Boulevard 26 * N. Richland Hills * TX 76010 (817) 255-3225 phone * 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 -Original Message- From: IBM Mainframe Discussion List [mailto:IBM-MAIN@bama.ua.edu] On Behalf Of Mark Pace Sent: Wednesday, January 19, 2011 7:58 AM To: IBM-MAIN@bama.ua.edu Subject: If Else JCL question Seems to be a very rookie question, but I can't find the answer. I have a series of JCLs that I want to put together as 1 JCL with IF THEN to test RC. What I can't find is a way to stop the JCL if a step has a bad RC. ie: STEP1 IF (STEP1.RC EQ 0) then STEP2 ELSE ABEND or GOTO EOJ or somehow end this thing ENDIF IF (STEP2.RC etc, etc) VSE has labels so I can use a GOTO, but I see nothing like that in z/OS JCL. -- Mark D Pace Senior Systems Engineer Mainline Information Systems -- 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 -- 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 - ATTENTION: The information in this electronic mail message is private and confidential, and only intended for the addressee. Should you receive this message by mistake, you are hereby notified that any disclosure, reproduction, distribution or use of this message is strictly prohibited. Please inform the sender by reply transmission and delete the message without copying or opening it. Messages and attachments are scanned for all viruses known. If this message contains password-protected attachments, the files have NOT been scanned for viruses by the ING mail domain. Always scan attachments before opening them. - -- 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
Re: If Else JCL question
On 1/19/2011 9:09 AM, Erik Janssen wrote: Actually, JOB COND=(4,LE) will flush all steps after RC greater than or equal to 4. JOB COND=(4,LT) will flush all steps after RC greater that 4... Personally, even though I still use COND= myself I *should* start using IF/THEN since I can never figure out the COND= logic without running some test job to see if what I though that would happen actually does... Regards, Erik. Ahem http://www.trainersfriend.com/JCL_courses/B620descrpt.htm maybe in conjunction with http://www.trainersfriend.com/TSO_Clist_REXX_Dialog_Mgr/a634descrpt.htm makes for a nice 5-day package. Reinforce / remember all those tricks you knew but maybe have forgotten, plus learn new features that you may not have had time to pay attention to. /Ahem :-) -Oorspronkelijk bericht- Van: IBM Mainframe Discussion List [mailto:IBM-MAIN@bama.ua.edu] Namens McKown, John Verzonden: woensdag 19 januari 2011 15:14 Aan: IBM-MAIN@bama.ua.edu Onderwerp: Re: If Else JCL question I like using COND= on the JOB card. Suppose each step must end with an RC LE 0. //MYJOB JOB COND=(4,LE) This flushes the remaining steps in a job after the step which gets an RC greater than 4. Of course, you can't have a different RC for flushing based on the individual steps. That requires nesting the IF //STEP1 EXEC PGM= // IF (STEP1.RC LE 4) THEN //STEP2 EXEC PGM= // IF (STEP2.RC LE 8) THEN //STEP3 EXEC PGM= // IF (STEP3.RC EQ 0) THEN //STEP4 EXEC PGM= // ENDIF // ENDIF // ENDIF John McKown Systems Engineer IV IT Administrative Services Group HealthMarkets(r) 9151 Boulevard 26 * N. Richland Hills * TX 76010 (817) 255-3225 phone * 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 -Original Message- From: IBM Mainframe Discussion List [mailto:IBM-MAIN@bama.ua.edu] On Behalf Of Mark Pace Sent: Wednesday, January 19, 2011 7:58 AM To: IBM-MAIN@bama.ua.edu Subject: If Else JCL question Seems to be a very rookie question, but I can't find the answer. I have a series of JCLs that I want to put together as 1 JCL with IF THEN to test RC. What I can't find is a way to stop the JCL if a step has a bad RC. ie: STEP1 IF (STEP1.RC EQ 0) then STEP2 ELSE ABEND or GOTO EOJ or somehow end this thing ENDIF IF (STEP2.RC etc, etc) VSE has labels so I can use a GOTO, but I see nothing like that in z/OS JCL. -- Kind regards, -Steve Comstock The Trainer's Friend, Inc. 303-393-8716 http://www.trainersfriend.com * To get a good Return on your Investment, first make an investment! + Training your people is an excellent investment * Try our new tool for calculating your Return On Investment for training dollars at http://www.trainersfriend.com/ROI/roi.html -- 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
Re: If Else JCL question
On Wed, 19 Jan 2011 09:50:56 -0600, Jonathan Goossen wrote: We force an ABEND by calling a program that always ABENDs //STEP1 ... //IF (STEP1.RC EQ 0) then //STEP2 ... //ELSE //SAEXEC PGM=BLOWUP //ENDIF Do you really _want_ the ABEND? If not, why not move the ELSE and ENDIF to the end of the JCL? BTW, What's an easy way to force an ABEND (without a program specifically for the purpose)? The most concise way that comes to mind is: //STEP EXEC PGM=IEBGENER //SYSUT1DD PATH='/',RECFM=FB,LRECL=80 ... ... gives a nice IEC143I 213-F8. But it requires three additional DD statements. Is there a shorter way? I know I can use a trivial IDCAMS step to set RC. -- gil -- 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
Re: If Else JCL question
We used to use a program called KABOOM, which did not exist (as I suspect with BLOWUP). One JCL statement, and a very prominent S806 abend. *don* On Wed, Jan 19, 2011 at 1:07 PM, Paul Gilmartin paulgboul...@aim.comwrote: On Wed, 19 Jan 2011 09:50:56 -0600, Jonathan Goossen wrote: We force an ABEND by calling a program that always ABENDs //STEP1 ... //IF (STEP1.RC EQ 0) then //STEP2 ... //ELSE //SAEXEC PGM=BLOWUP //ENDIF Do you really _want_ the ABEND? If not, why not move the ELSE and ENDIF to the end of the JCL? BTW, What's an easy way to force an ABEND (without a program specifically for the purpose)? The most concise way that comes to mind is: //STEP EXEC PGM=IEBGENER //SYSUT1DD PATH='/',RECFM=FB,LRECL=80 ... ... gives a nice IEC143I 213-F8. But it requires three additional DD statements. Is there a shorter way? I know I can use a trivial IDCAMS step to set RC. -- gil -- 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 -- 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
Re: If Else JCL question
On Wed, 19 Jan 2011 13:11:26 -0500, Donald Johnson wrote: We used to use a program called KABOOM, which did not exist (as I suspect with BLOWUP). One JCL statement, and a very prominent S806 abend. *don* Why do I do things the hard way!? I never considered that. //STEP EXEC PGM=IEBGENER //SYSUT1DD PATH='/',RECFM=FB,LRECL=80 Well, I scrambled to contrive a method which had no dependency on any data set's content. If someone were, unbeknownst to you, to make KABOOM an alias of IEFBR14 ... Yah, I know; vanishingly improbable. -- gil -- 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
Re: If Else JCL question
We force the abend to stop running the job immediately. This flags that something is wrong and needs to be looked at. In the original post, Mark wanted to ABEND or GOTO EOJ or somehow end this thing If you don't want to abend the job but just conditionally run one or more steps, then I use IF-THEN-ENDIF with no else. I have written programs that set the return code to 1, 2, or 3 to indicate to the JCL future steps to run. Then anything 4+ will raise an error. IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 01/19/2011 12:07:36 PM: From: Paul Gilmartin paulgboul...@aim.com To: IBM-MAIN@bama.ua.edu Date: 01/19/2011 12:08 PM Subject: Re: If Else JCL question Sent by: IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu On Wed, 19 Jan 2011 09:50:56 -0600, Jonathan Goossen wrote: We force an ABEND by calling a program that always ABENDs //STEP1 ... //IF (STEP1.RC EQ 0) then //STEP2 ... //ELSE //SAEXEC PGM=BLOWUP //ENDIF Do you really _want_ the ABEND? If not, why not move the ELSE and ENDIF to the end of the JCL? BTW, What's an easy way to force an ABEND (without a program specifically for the purpose)? The most concise way that comes to mind is: //STEP EXEC PGM=IEBGENER //SYSUT1DD PATH='/',RECFM=FB,LRECL=80 ... ... gives a nice IEC143I 213-F8. But it requires three additional DD statements. Is there a shorter way? I know I can use a trivial IDCAMS step to set RC. -- gil -- 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 This e-mail message and all attachments transmitted with it may contain legally privileged and/or confidential information intended solely for the use of the addressee(s). If the reader of this message is not the intended recipient, you are hereby notified that any reading, dissemination, distribution, copying, forwarding or other use of this message or its attachments is strictly prohibited. If you have received this message in error, please notify the sender immediately and delete this message and all copies and backups thereof. Thank you. -- 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
Re: If Else JCL question
suppose I'm old school, never saw a need to code IF-THEN-ELSE in JCL, only use cond code checking and never have any issues with step execution or job flow. the only cond code testing I ever do when writing procs is, if it's true, it's through, meaning the step/job won't execute if the COND is true. I guess IBM added all that IF-THEN-ELSE stuff because too many coders never learned that lesson. hernandez --- On Wed, 1/19/11, Erik Janssen erik.jans...@ing.nl wrote: From: Erik Janssen erik.jans...@ing.nl Subject: Re: If Else JCL question To: IBM-MAIN@bama.ua.edu Date: Wednesday, January 19, 2011, 11:09 AM Actually, JOB COND=(4,LE) will flush all steps after RC greater than or equal to 4. JOB COND=(4,LT) will flush all steps after RC greater that 4... Personally, even though I still use COND= myself I *should* start using IF/THEN since I can never figure out the COND= logic without running some test job to see if what I though that would happen actually does... Regards, Erik. -Oorspronkelijk bericht- Van: IBM Mainframe Discussion List [mailto:IBM-MAIN@bama.ua.edu] Namens McKown, John Verzonden: woensdag 19 januari 2011 15:14 Aan: IBM-MAIN@bama.ua.edu Onderwerp: Re: If Else JCL question I like using COND= on the JOB card. Suppose each step must end with an RC LE 0. //MYJOB JOB COND=(4,LE) This flushes the remaining steps in a job after the step which gets an RC greater than 4. Of course, you can't have a different RC for flushing based on the individual steps. That requires nesting the IF //STEP1 EXEC PGM= // IF (STEP1.RC LE 4) THEN //STEP2 EXEC PGM= // IF (STEP2.RC LE 8) THEN //STEP3 EXEC PGM= // IF (STEP3.RC EQ 0) THEN //STEP4 EXEC PGM= // ENDIF // ENDIF // ENDIF John McKown Systems Engineer IV IT Administrative Services Group HealthMarkets(r) 9151 Boulevard 26 * N. Richland Hills * TX 76010 (817) 255-3225 phone * 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 -Original Message- From: IBM Mainframe Discussion List [mailto:IBM-MAIN@bama.ua.edu] On Behalf Of Mark Pace Sent: Wednesday, January 19, 2011 7:58 AM To: IBM-MAIN@bama.ua.edu Subject: If Else JCL question Seems to be a very rookie question, but I can't find the answer. I have a series of JCLs that I want to put together as 1 JCL with IF THEN to test RC. What I can't find is a way to stop the JCL if a step has a bad RC. ie: STEP1 IF (STEP1.RC EQ 0) then STEP2 ELSE ABEND or GOTO EOJ or somehow end this thing ENDIF IF (STEP2.RC etc, etc) VSE has labels so I can use a GOTO, but I see nothing like that in z/OS JCL. -- Mark D Pace Senior Systems Engineer Mainline Information Systems -- 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 -- 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 - ATTENTION: The information in this electronic mail message is private and confidential, and only intended for the addressee. Should you receive this message by mistake, you are hereby notified that any disclosure, reproduction, distribution or use of this message is strictly prohibited. Please inform the sender by reply transmission and delete the message without copying or opening it. Messages and attachments are scanned for all viruses known. If this message contains password-protected attachments, the files have NOT been scanned for viruses by the ING mail domain. Always scan attachments before opening them. - -- 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
Re: If Else JCL question
the only cond code testing I ever do when writing procs is, if it's true, it's through, meaning the step/job won't execute if the COND is true. Heh. I learned that one as If true, don't do. Works out the same, and is catchy enough for me to remember it... Allen Gainsford === Info Developer, Banking Shared Services HP Enterprise Services (South Pacific) Office +64-4-474-5133 | Fax +64-4-474-5258 | Email a...@hp.com -- 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
Re: If Else JCL question
On Wed, 19 Jan 2011 13:13:03 -0800, Cris Hernandez #9 wrote: suppose I'm old school, never saw a need to code IF-THEN-ELSE in JCL, only use cond code checking and never have any issues with step execution or job flow. the only cond code testing I ever do when writing procs is, if it's true, it's through, meaning the step/job won't execute if the COND is true. I guess IBM added all that IF-THEN-ELSE stuff because too many coders never learned that lesson. http://db.cs.berkeley.edu/postgres.html -- gil -- 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
Re: simple JCL question
PGM= is positional, is it not? Charles -Original Message- From: IBM Mainframe Discussion List [mailto:ibm-m...@bama.ua.edu] On Behalf Of Shmuel Metz (Seymour J.) Sent: Tuesday, August 24, 2010 8:38 AM To: IBM-MAIN@bama.ua.edu Subject: Re: simple JCL question In listserv%201008191837506477.1...@bama.ua.edu, on 08/19/2010 at 06:37 PM, Paul Gilmartin paulgboul...@aim.com said: You generally laud JCL for embracing Assembler's syntactic conventions. Another it spurned was order-independence of keyword arguments. WTF? Keyword arguments in JCL are order-independent. -- 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
Re: simple JCL question
On 24 Aug 2010 13:25:12 -0700, st...@trainersfriend.com (Steve Comstock) wrote: Exactly. In my JCL class, I proclaim, parameters are either keyword or positional, then I explain what those two terms mean; then when we get to the EXEC statement I recall that earlier assertion and then say, I lied; the PGM parm on the execute statement is _both_ keyword and positional. I like that process - it makes it easier for the students to remember what you were teaching. -- 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
Re: simple JCL question
Charles Mills wrote: | PGM= is positional, is it not? and this of course is a debater's point, but it is one I should have been tempted to make too in response to a too sweeping WTF?. The first parameter following EXEC may be any one of o PGM=program name, o PROC=procedure name, or just o procedure name. This last default option is the problematic one. Like the assignment statement in some statement-level procedural languages, an instance of it it is most easily recognized as not being an instance of some other permitted thing, in this case a supported EXEC-statement keyword parameter, here one of PGM= or PROC=. Two design errors are thus conflated: o treating GUBBINS as an instance of PROC=GUBBINS was the first, major blunder; but o judging that a scan that required only that positional parameters be kept in sequence would be too difficult to write or maintain was the second. The HLASM, for example, permits the keyword and positional parameters of a macro definition to be intermixed, with only the positional ones kept in sequence. If, say, one writes | macro | EXAMPLE positional1,keyword1=,positional2,keyword2=,positional3 | . . . | mend in a macro definition, EXAMPLE macro instructions can take such forms as | EXAMPLE keyword2=value2,positional1,positional2,keyword1=value2,positional3 | EXAMPLE keyword1=value1,positional1,keyword2=value2,positional2,positional3 The only requirement is that positional1 come before positional2, positional2 come before positional3, etc., in such a macro instruction. Keyword parameters may be interspersed among them in any sequence. It would now be difficult to sort out who took this decision or why it was taken (if indeed it was ever taken explicitly); but JCL, in spite of its name, was not really conceived of originally as a language having a formal syntax. There is evidence that, circa 1963, it was thought of as nothing more than a convenient set of coding conventions that could, again conveniently, be borrowed from assembly language, which was of course very familiar to all of the borrowers. Coherence---The notion that knowledge of a subset of some language should make plausible, almost invariably confirmed conjectures about its unknown facilities possible---was not yet valued as it is or, better, should be today. John Gilmore Ashland, MA 01721-1817 USA -- 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
Re: simple JCL question
In 008301cb4453$4242cec0$c6c86c...@org, on 08/25/2010 at 05:44 AM, Charles Mills charl...@mcn.org said: PGM= is positional, is it not? Yes. I could make a case that it shouldn't be, and it's as confusing as the default for SPACE. Or take the change in the processing of DD overrides - please! -- Shmuel (Seymour J.) Metz, SysProg and JOAT ISO position; see http://patriot.net/~shmuel/resume/brief.html We don't care. We don't have to care, we're Congress. (S877: The Shut up and Eat Your spam act of 2003) -- 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
Re: simple JCL question
On Wed, Aug 25, 2010 at 12:33 PM, Shmuel Metz (Seymour J.) shmuel+ibm-m...@patriot.net wrote: In 008301cb4453$4242cec0$c6c86c...@org, on 08/25/2010 at 05:44 AM, Charles Mills charl...@mcn.org said: PGM= is positional, is it not? Yes. I could make a case that it shouldn't be, and it's as confusing as the default for SPACE. Or take the change in the processing of DD overrides - please! Or, consider the procname in //stepname EXEC procname,keywords=values to be the positional parameter, with an option is to replace 'procname' with 'PROC=procname' or 'PGM=pgmname'. -- Mike A Schwab, Springfield IL USA Where do Forest Rangers go to get away from it all? -- 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
Re: simple JCL question
On Wed, 25 Aug 2010 14:21:46 -0500, Mike Schwab wrote: Or, consider the procname in //stepname EXEC procname,keywords=values to be the positional parameter, with an option is to replace 'procname' with 'PROC=procname' or 'PGM=pgmname'. Humpty Dumpty. If so, it was irresponsible to choose a notation subjectively conflated with the syntax of keyword parameters. But, as John G. observes, responsibility in that area was not an esteemed design principle 45 years ago. -- gil -- 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
Re: simple JCL question
In listserv%201008191837506477.1...@bama.ua.edu, on 08/19/2010 at 06:37 PM, Paul Gilmartin paulgboul...@aim.com said: You generally laud JCL for embracing Assembler's syntactic conventions. Another it spurned was order-independence of keyword arguments. WTF? Keyword arguments in JCL are order-independent. Perhaps you are thinking of references to specific steps, but there's no analog to that in assembler. -- Shmuel (Seymour J.) Metz, SysProg and JOAT ISO position; see http://patriot.net/~shmuel/resume/brief.html We don't care. We don't have to care, we're Congress. (S877: The Shut up and Eat Your spam act of 2003) -- 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
Re: simple JCL question
On Tue, Aug 24, 2010 at 11:38 AM, Shmuel Metz (Seymour J.) shmuel+ibm-m...@patriot.net wrote: Perhaps you are thinking of references to specific steps, but there's no analog to that in assembler. Sure there is -- the order of the instructions! (Although with OoO Execution, even THAT changes...) Yes, I'm kidding. Of course you're right about this. -- zMan -- I've got a mainframe and I'm not afraid to use it -- 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
Re: simple JCL question
On Tue, 24 Aug 2010 11:38:09 -0400, Shmuel Metz (Seymour J.) wrote: You generally laud JCL for embracing Assembler's syntactic conventions. Another it spurned was order-independence of keyword arguments. WTF? Keyword arguments in JCL are order-independent. Perhaps you are thinking of references to specific steps, but there's no analog to that in assembler. Try: //STEP EXEC PARM='42',PGM=IEFBR14 -- gil -- 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
Re: simple JCL question
Gil, The problem with your example is that even though it looks like it is, PGM=xxx is not a keyword argument. According to the JCL reference manual, the first parameter after the EXEC statement is a positional parm and the rest of them are keyword. The While I'm not saying I agree with it, that's the way it is defined and documented. Now, if IBM were to require PROC=y to execute a PROC (and make everybody change their JCL to comply), then I would think it would be a simple thing to change the PGM= to be a keyword parm, but I don't think IBM will do that (nor do I want them to). Rex -Original Message- From: IBM Mainframe Discussion List [mailto:ibm-m...@bama.ua.edu] On Behalf Of Paul Gilmartin Sent: Tuesday, August 24, 2010 3:07 PM To: IBM-MAIN@bama.ua.edu Subject: Re: simple JCL question On Tue, 24 Aug 2010 11:38:09 -0400, Shmuel Metz (Seymour J.) wrote: You generally laud JCL for embracing Assembler's syntactic conventions. Another it spurned was order-independence of keyword arguments. WTF? Keyword arguments in JCL are order-independent. Perhaps you are thinking of references to specific steps, but there's no analog to that in assembler. Try: //STEP EXEC PARM='42',PGM=IEFBR14 -- gil The information contained in this e-mail may contain confidential and/or privileged information and is intended for the sole use of the intended recipient. If you are not the intended recipient, you are hereby notified that any unauthorized use, disclosure, distribution or copying of this communication is strictly prohibited. If you received this e-mail in error, please reply to sender and destroy or delete the message and any attachments. Thank you. -- 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
Re: simple JCL question
Paul Gilmartin wrote: On Tue, 24 Aug 2010 11:38:09 -0400, Shmuel Metz (Seymour J.) wrote: You generally laud JCL for embracing Assembler's syntactic conventions. Another it spurned was order-independence of keyword arguments. WTF? Keyword arguments in JCL are order-independent. Perhaps you are thinking of references to specific steps, but there's no analog to that in assembler. Try: //STEP EXEC PARM='42',PGM=IEFBR14 -- gil Exactly. In my JCL class, I proclaim, parameters are either keyword or positional, then I explain what those two terms mean; then when we get to the EXEC statement I recall that earlier assertion and then say, I lied; the PGM parm on the execute statement is _both_ keyword and positional. -- Kind regards, -Steve Comstock The Trainer's Friend, Inc. 303-393-8716 http://www.trainersfriend.com * To get a good Return on your Investment, first make an investment! + Training your people is an excellent investment -- 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