Using system symbols and JCL symbols, you can design your procedures to be easily modified. If the procedure does not contain required system symbols and JCL symbols, you can override the statement. For its current execution, you can override an in-stream or cataloged procedure by:
1) Overriding, nullifying, or adding EXEC statement parameters
2) Overriding, nullifying, or adding parameters to DD or OUTPUT JCL
3) Adding DD or OUTPUT JCL statements
Overriding a parameter modifies only that parameter; the system uses all other parameters on the original statement.
For example, if you override the data set name on a DD statement that includes a UNIT and VOL=SER parameter, the system will still use the UNIT and VOL=SER parameters.
Invalid parameters in a procedure cannot be corrected through overrides. Before processing overrides, the system scans the original procedure statements for errors and issues error messages.
Symbolic parameter means if you write a one catlog procedure in that you have given a
//ddname dd dsn=somename.
if you are calling the catlog procedure each time the data set name is fixed.But you want to change that data set name when ever you want the you can recode that step like this
//dda dd dsn=&s
if you are using that catalog procedure in some ware another job
//step1 exec=Ctalog procedure name s=abc
this value is repalced in above statement.
//ddname dd dsn=abc
The symbolic parameter is used to override parameters on dd statements.They can be used in both cataloged and instram procedures.provided a convenient means of assigning values to commonly used jcl parameters.Are assigned values in the Proc or EXeC statements.
temporary Parameter: I never heard this parameter. I guess it is temporary dataset
This temporary dataset which ur saying (userid.jobname.jobid.Ddsnumber.xxx ) --which one is right would be created and deleted with in the step itself depends on DISP Paremeter.
check out whether this helps
using overriding concept u can override,nullify,and add parameters to EXEC,DD,OUTPUT JCL stmts.
Coding Symbols in JCL
JCL symbols and system symbols can represent parameters, subparameters, or values in procedures or in the parameter field of statements; those that vary each time a job runs are good candidates to be coded as symbols.
You can code JCL symbols in:
JCL statements in the input job stream, submitted either in batch mode or from a TSO session (but not in the job stream read in in response to a START command)
Statements in cataloged or in-stream procedures (which do not include started task JCL)
DD statements that are added to a procedure (something that is possible, but not practical for a started task procedure).
You may code system symbols only in started task JCL (jobs and procedures), which can be read only from a procedure library. Therefore, you can code system symbols only in statements in cataloged procedures.
For example, if the data set name on a DD statement in an INCLUDE group can vary each time the INCLUDE group is imbedded in the JCL, you can code the DSNAME parameter as a system symbol on the DD statement:
If a job step is charged to different account numbers each time the procedure is executed, code the ACCT parameter on the EXEC statement as one or more system symbols or JCL symbols:
___ References _________________________________________________________
| ° For information about using symbols in nested procedures, see |
| "Using Symbols in Nested Procedures" in topic 5.4.6. |
| ° For information about using symbols in started task JCL, see |
| "Using Symbols in Started Task JCL" in topic 7.4.2. |
Rules for Coding Symbols in JCL
Follow these rules when coding symbols in JCL:
Do not code EXEC statement parameter and subparameter keywords as names for JCL symbols.
Example: Do not code ®ION=200K or REGION=®ION; correctly code REGION=&SIZE.
Do not code DD or JOB statement keywords as JCL symbols in procedures or jobs that are started by a START command from the operator console. This rule includes the following obsolete keywords:
This rule also includes DCB subparameters. For example, do not use the following DCB subparameters as symbol values:
For a complete list of DCB subparameters, see "DCB Subparameters" in topic 12.16.6.
When coding a JCL symbol that has the same name as a system symbol, keep in mind that the substitution text for the JCL symbol overrides the substitution text for the system symbol with the same name.
Do not use symbols to change the identifier field, name field, or operation field of a JCL statement.
Do not specify symbols in records in an in-stream data set defined by the DD * or DATA parameter. The system does not substitute text for symbols in SYSIN data.
In addition to the preceding rules for coding symbols in JCL, you also need the general rules for coding system symbols. See the section on coding system symbols in z/OS MVS Initialization and Tuning Reference.
Note: JCL does not support substringing of system symbols or JCL symbols. (Substringing allows you to specify a subset of characters in a substitution text.) Therefore, the section on substringing symbols in the general rules for coding symbols in z/OS MVS Initialization and Tuning Reference is not entirely applicable.
However, one topic of that section in z/OS MVS Initialization and Tuning Reference discusses "double ampersand notation," a technique that could be useful in coding your JCL.
For instance, suppose you want to enter a substringed symbol as a parameter of an EXEC statement of a started task. By using a double ampersand you can force MVS to defer processing the statement until after the JCL is executed and the program is running. For example, given a value of '05' for SYSCLONE, the statement could read: