Jazz Symbolic Parameters

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.  

Jazz Symbolic Parameters - Syntax

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.

Parameter Replacement

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.

Parameter Values

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.

Parameters

Parameter name

Where set

Where used

@Userid

Note 1

JCL generation

@JobName

Note 1

JCL generation

@Library

Note 1, Note 5

JCL generation

@Suffix

Note 1

JCL generation

@JobStmt

Note 1

JCL generation

@Project

Note 1

JCL generation

@Group

Note 1

JCL generation

@Type

Note 1

JCL generation

@Source

Note 1

JCL generation

@Copy

Note 1

JCL generation

@JCL

Note 1

JCL generation

@LOADBatch

Note 1

JCL generation

@LOADCICS

Note 1

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

Notes

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