In screen templates like TMPL01 and in JCL Jazz Symbolic
Parameters may appear. These are values written @xxxx. that are replaced by
real values when the object (screen, JCL, .json, etc) is generated. For
example, when generating JCL the proforma job statement may be: -
//@Jobname
JOB ,CLASS=A,MSGCLASS=H,NOTIFY=&SYSUID
When Jazz generates a Job statement from this pro-forma then the parameter @Jobname is replaced by its current value.
A symbolic parameter starts with @, and ends with a character that is not a letter or number, i.e. a blank or any punctuation including the end of the line. Thus the symbolic parameter in the proforma Job statement above is @Jobname, and in
DSN=@Project.@Group.SRCLIB(@Program)
parameters
are @Project, @Group, and @Program. Thus
with values
@Project = IBMUSER
@Group = MANAJAZZ
@Program = EXAMPLE1
This would
become
DSN=IBMUSER.MANAJAZZ.SRCLIB(EXAMPLE1)
Normally
the separating character becomes part of the substituted text, but an exception
is “!”. This rule allows two (or more)
symbolic parameters to create a single value, or a symbolic parameter to be
joined with a following character. For
example, in template Swagger.jzt, @Name is the program name, and the names of
the input and output records is the program name suffixed with “I” or “O”. The template includes lines
"$ref" :
"@name!I.json"
And
"$ref" : "@name!O.json"
For @Name =
“JSPG1” this results in record names JSPG1I and JSPG1O.
Parameter
names are not case-sensitive: thus @Project, @project, @PROJECT are all the
same symbolic parameter.
Parameter
values are exactly as written. Where a
particular case is required, prefix the parameter name with uc or lc, e.g. if
@Name is “Robert” then @ucName is “ROBERT” and @lcName is “robert”.
See below for a list of the symbolic parameters that
are known to Jazz.
Jazz
replaces the parameter with its current value. Thus if @Jobname has value
“MyJob”, then the Job statement will become
//MyJob JOB ,CLASS=A,MSGCLASS=H,NOTIFY=&SYSUID
There was one blank between “@Jobname” and “JOB”, so there is one blank between “MyJob” and “JOB”.
Since “@” is not a letter or number, parameters can be concatenated simply by writing one after the other. For example, if the proforma Job statement had been
//@Userid@Suffix JOB …
and the parameters have values
@Userid=Robertb
@Suffix=1
then the Job statement would become
//Robertb1 JOB …
Parameter values can be other parameters. For example, default library names are defined on the z/OS tab of the configuration window as (for example): -
@Project.@Group.SRCLIB
with Project and Group being defined and given values further up the page.
Replacement is top-to-bottom, so @Project and @Group are replaced with their values at that point. If they have not been given values then they are left as “@Project”, which will cause errors when the JCL is submitted.
Many of the parameters used in JCL replacement are defined here: -
Think of each of these textboxes as defining a parameter: thus @Userid = whatever you put into the first textbox, @JobStmt as the value of the textbox labelled “Job Stmt” and so on.
Parameter name |
Where set |
Where used |
@Userid |
JCL generation |
|
@JobName |
JCL generation |
|
@Library |
Note 1, Note 5 |
JCL generation |
@Suffix |
JCL generation |
|
@JobStmt |
JCL generation |
|
@Project |
JCL generation |
|
@Group |
JCL generation |
|
@Type |
JCL generation |
|
@Source |
JCL generation |
|
@Copy |
JCL generation |
|
@JCL |
JCL generation |
|
@LOADBatch |
JCL generation |
|
@LOADCICS |
JCL generation |
|
@Program |
Note 2 |
JCL generation |
@Screen |
Note 3 |
JCL generation, Map Generation |
@DSName |
Note 4 |
JCL generation, GO step |
@Name |
Note 2 |
.json generation of Swagger definition, for REST Web Service |
@host |
Note 6 |
Ditto |
@port |
Note 6 |
Ditto |
@basepath |
Note 6 |
Ditto |
@scheme |
Note 6 |
Ditto |
1. Textbox on z/OS tab of Configure
2. From the name of the .jzz object that you are editing
3. The name of 3270-type screen that you are editing
4. From the DSNAME option of the DEFINE statement, or a prompt on job submission
5. Set to one of the other library names – e.g. Source or Copy, LOADBatch or LOADCICS, etc.
6. From Swagger section of New Web Service form