Page 1 of 1

//Stepxx EXEC PROC=name vs. //Stepxx EXEC Proc name

PostPosted: Fri Feb 15, 2013 10:00 pm
by 20sam13
I'm pretty sure this is avery easy one to answer, but what is the difference?

Or, is the //Stepxx EXEC PROC=name now a preferred way of doing things?

Is there a benefit to it or any functionality lost by not doing it?


Thanks!
-Scott

Re: //Stepxx EXEC PROC=name vs. //Stepxx EXEC Proc name

PostPosted: Fri Feb 15, 2013 10:03 pm
by Akatsukami
There is no difference and, to my knowledge, never has been.

Re: //Stepxx EXEC PROC=name vs. //Stepxx EXEC Proc name

PostPosted: Fri Feb 15, 2013 10:19 pm
by Robert Sample
It saves 5 keystrokes not to put PROC=. Otherwise, the JCL Reference Manual (link at the top of this page) tells you that the two forms are identical. And the syntax hasn't changed in a LOT of years, so this is nothing new with JCL.

Re: //Stepxx EXEC PROC=name vs. //Stepxx EXEC Proc name

PostPosted: Mon Feb 18, 2013 2:44 pm
by halfteck
As in all things IBM JCL, to invoke a default you may omit parameters and sub parameters.
With the EXEC statement, the default is PROC= the system assumes you are executing a procedure rather than a program. This is a throwback to the 1960's (and unfortunately i still remember them) where all JCL was invoked using ACTUAL puched cards. Looking at JCL you will see many 00's of lines of code that had to be fed through a card reader each time the job was executed.
This was a nonsense situation so procedures were born, allowing the now 'card images' to be stored on DASD and invoked with //STEP1 EXEC MYPROC1. IBM assummed all users would want this so made PROC= the default

Re: //Stepxx EXEC PROC=name vs. //Stepxx EXEC Proc name

PostPosted: Tue Feb 19, 2013 10:53 pm
by 20sam13
Thanks to everyone for their research, insight and explanations.