Configuration. 1

Workbench Options. 1

Colours. 2

Workbench Options. 2

User File Paths. 2

[Initialize Project] 2


z/OS. 3

JZL Templates. 5

Job Submission. 6

Web Services. 6

Diagnostics. 7


When you click [Configure] on the workbench, this form opens: -


You make changes on any of the tabs, then when you click [Close] these changes are saved and will be used immediately and for all following Jazz sessions (until changed again of course).   As described under “Setup”, you use this form when you use Jazz for the first time, as it needs to be pointed to the right libraries and so on.

Workbench Options

This tab relates to the Jazz workbench: -


(or for our American friends, Colors).  You probably won’t feel the need to change the default colours, but double-click or right-click any of these if you do and a colour palette appears:-


Select the colour that you want for this type of program text.

Workbench Options

You can set the number of spaces per indent, the maximum line length, whether you want COPY code to be displayed by default, and the number of files that you want to be remembered in the “Most Recently Used” list of the File menu.  Thus with File limit set to 4 (the default), your File menu will look like this: =



Again, you’ll probably accept the defaults.

User File Paths

This describes the folders that are used in your Windows environment for Jazz objects.  This will cause Jazz to set up the common folder, and then set up subfolders within this for the various types of objects – programs, copy code, etc.  Jazz uses different extensions like .jzz, .jzc, etc to distinguish the different object types, so you can have a single subfolder for all types of object (as in this example), or you can define separate subfolders to make your Windows setup more like the way your mainframe libraries will be organized.


If you are working on your own then these can be on your own PC, but if you are working with others then all members of your project team must have the same values, and the common path should refer to a folder on a shared server.

[Initialize Project]

When values have been given for the user file paths click [Initialize Project] and Jazz will copy some initial objects into the libraries.  You may be asked to do this with a new version of Jazz if there are new or modified objects.


Here you give the options that will be used for the Intermediate Language (COBOL) and screen generation.


Intermediate Language.  You can’t change this: it’s put here just to emphasis our future intent.


Max Jazz Error Level.  If Jazz checking finds errors with severity greater than the level set here, then COBOL won’t be generated.  Error severity may be

·         T          Terminal error:  Jazz can’t continue

·         S          Severe Error:  Jazz can’t generate a correct COBOL program

·         E          Error:  Jazz has made a correction that might result in a correct COBOL program

·         W         Warning: The program is probably correct

·         I           Information:  This isn’t a problem, just something that Jazz thought you should know.

Sometimes you might want to change this from “E” to “S” to allow Jazz to generate some COBOL anyway.


Include Jazz Program as Comments.  If checked then the Jazz source program is included as comments at the top of the program.  Individual Jazz statements are also printed within the body of the COBOL program just ahead of the corresponding COBOL statements, whether this is checked or not.


Show Dictionary Entries in Jazz Program.  If checked, then Jazz will print into the program the entries that will be added to the system data dictionary.  The data dictionary feature isn’t yet developed: when it is the entries shown here will be picked up and put into the dictionary database.


Generate Diagnostic Code.   If checked, Jazz creates extra COBOL code that may be useful in the event of a run-time error (abend).   This code introduces a slight overhead, but our recommendation is to leave this checked: the overhead will be undetectable (only a few extra MOVE statements) in practice.


3270 Template.  When you create a new screen Jazz starts with a template: here you give the name that will be used as default by the screen editor.  If you have local standards about 3270 layout then you may prefer to create your own template with a different name.


CICS Mapping Level.  Setting this has no effect unless you are generating web services, where it can affect the size of messages.  Suppose you have a message structure defined with a variable number of occurrences of a record, for example


With CICS Mapping Level absent of < 4 then message will always contain the maximum number of occurrences of the record, with excess records being sent as initialised values (blanks and zeros).  With CICS Mapping Level 4 or greater a COBOL OCCURS DEPENDING ON structure is created, and the actual number required (up to the maximum) is sent.


Here you give the details needed to allow jobs to be created and submitted by FTP to the z/OS system.



UserID, Password.        These are the credentials with which you log into TSO on the z/OS system.   Unless your z/OS system has been set up to allow anonymous FTP (which is unlikely) Jazz needs to log on to the FTP connection in order to upload the generated COBOL and submit a job to compile [and run] it, so it needs this information. When you enter the password you must repeat it in the textbox “Repeat PWord”.   Your z/OS system may periodically (monthly?) require you to change your password: when you do this (with TSO) you will also need to enter the new password here. 


Job Stmt.  This is a pro-forma JOB statement.  Note that, like all “JZL”, it is standard z/OS JCL except that the statements may be as long as you like, and may include Jazz parameters: names starting with “@” that are substituted before the JCL is submitted.  Here there is a parameter @Jobname, which is formed according to the rule described to the right.


JobName rule.  Choose a rule to create a value for @Jobname.


ISPF.  Here you describe the library name heirachy, as you would in ISPF.  The main value of this is to give values for symbolic parameters @Project and @Group, which are used in the following section, Libraries


Job Submission.  IP gives the address that you’d use in a TN3270 session to communicate with your z/OS system.  Port is always 21, and in fact this parameter is currently ignored (except that it must be given, and must be a number).


Libraries.  Here you define the z/OS libraries that you’ll use.  Note that their DSNAME values can be defined with Jazz parameters.  After substitution these values may be used when jobs are generated and submitted.

JZL Templates


JZL is “Jazz-format JZL” that Jazz uses to submit a job.  For example, if you click [Process] when you are editing a batch program, then after Jazz has checked the program and found that there are no serious errors it will generate and submit a job by: -

1.                   Uploading the generated COBOL to the COBOL source library (defined as “Source”)

2.                   Creating a JOB statement based on the Job Statement on this form

3.                   Creating JCL from the batch compile template JZCompileBatch.  This uses the procedure IGYWCL and so includes a Compile and Link step

4.                   Adding a step to run the program based on the template JZGo, with additional DD statements derived from the files used by the program that have DSNAME options.


You can edit any of these templates by clicking the label or double clicking the textbox: this will open the named template with Notepad.  You can create a new template by giving it a new name with Save AS


JZL is normal z/OS JCL except that: -

1.                   Lines do not have to fit within “columns 1 to 72”, but can be any length.  

2.                   Lines, including parameter lines, can include Jazz Parameters, which are words starting with “@” like “@Program”. 


Jazz converts JZL to JZL by: -

1.                   Substituting @ parameters.  The JZL and hence the JCL may contain JCL parameters like &SYSUID – these will be handled later by z/OS.

2.                   Breaking over-long JCL statements at appropriate boundaries, and creating continuation lines.  (This does not apply to parameter lines).


To be substituted a parameter must be bounded by punctuation or the end of the line.  If you wish to have a parameter value directly followed by other text use the special punctuation symbol “!” (shift-1 on most keyboards).  ! will be removed from the output line when it is used in this way: thus

@Program = “WST1”


results in


Lines that use this special punctuation should not use “!” in any other way as ALL “!” will be removed from that line.  However it is a normal data character in other situations, albeit invalid in JCL.


Here is the list of parameters recognized by JZL => JCL conversion.  Mostly the source of these values is obvious, and is usually a field in the z/OS tab of the configuration form.  Parameter values may be entered in lower or upper case or a mixture, but Jazz may change this: -

·         In situations where the value MUST be upper case to avoid errors, like the z/OS library names (@Source, @Copy, @JCL, @LoadBatch, and @LoadCICS) the values will be changed to upper case as they are entered.  In the table below, the parameters with “U” in the Case column are forced to upper case.  Otherwise parameter values retain the case with which they were entered.

·         In some cases a parameter value is wanted in upper case in the z/OS file system, but in lower case in the z/OS Unix file system.  An example is Project, which is set by default to @Userid and therefore is upper case.  However when this is a component of the HFS name it may need to be lower case.  In such cases you can use @lc… or @uc… parameter names, e.g. if @Project has value “IBMUser” then @lcProject will have value “ibmuser” and @ucProject would have value “IBMUSER”.  If a parameter value contains further parameters then the coercion to upper or lower case occurs on the initial substitution.  For example, if @hfs is defined as “/u/@project”, then it will initially become “/U/@PROJECT”.  Now @Project will be substituted, but without either uc or lc the actual value of @Project will be used, for example the final value would be  “/U/Myprojt” if the value of @Project were “Myprojt”.


Parameter name





Formed by the rules in JobName Rule



May be set to @Source, @Copy, @Loadbatch, or @LoadCICS



From textbox on z/OS tab



Set automatically.  See JobName Rule



Taken from the PROGRAM statement



Screen name: set when the Jazz Screen Editor submits a physical map for assembly



From textbox on z/OS tab



From textbox on z/OS tab, usually defaulted to @Userid



Value of @Project in lower case



Value of @Project in lower case



From textbox on z/OS tab



Value of @Group in lower case



Value of @Group in upper case



From textbox on z/OS tab.  Currently not used



From textbox on z/OS tab



From textbox on z/OS tab



From textbox on z/OS tab



From textbox on z/OS tab



From textbox on z/OS tab



From textbox on z/OS tab



Web Service Provider: Request member name



Web service provider: Response member name



Web Services: parameter for DFHLS2WS.  Value CHANNEL or COMMAREA



Web Service provider: container name



Set by program to “Provider” or “Requester”

Job Submission


If the IP address or your z/OS system, and the Port Number so that Jazz can submit jobs and get the results back using FTP.  Secure FTP (TLS) will be used if it is detected.

Web Services


Give the name of the HFS (Hierarchical File System) that you’ll be using for Web Services.  As with the JZL Templates section, Provider and Requester name JZL templates that you can edit.  Just click on the word “Provider” or “Requester” to open a Notepad window.


[Check HFS].  Checks (and creates if necessary, subject to a dialog), the pair of files defined as HFS, i.e. /u/manajazz/Provider and /u/manajazz/Requester, with subfolders /shelf and /wspickup.  Note that these names are case-sensitive. 



There is only one field on this tab that might be relevant to Jazz users:  Loop Trap Limit.   At various points in Jazz the logic should be going through a list – of statements, of fields, whatever – and if we have made a programming error the code may go into an endless loop.  To prevent this a limit has been coded: if the limit is reached then there is a message “Loop Trap Exceeded” and the program stops. Unless you are writing much larger programs than we do you shouldn’t see this message: if you do see it but you think that it’s a valid situation you may like to set a larger limit.


Other options on this tab cause various diagnostics to be produced as Jazz runs.  These will be meaningless without access to the source code of the Jazz program.