Jul 21 ’14

z/OS 2.1 Provides Significant New Features in ISPF and MVS/JCL

by John Kelley in Enterprise Tech Journal

IBM introduced significant enhancements in ISPF version 7.1 for z/OS 2.1, which was released in September 2013. Let’s take a look at these new options, commands and settings as well as some changes to MVS/JCL.   

UNIX Directory Lists

ISPF option 3.17 and the UDLIST command produce a z/OS UNIX directory list with an eight-character input field to the left, in front of the directory or file name (see Figure 1). The line command field on UNIX directory lists has characteristics similar to both data set lists and member lists, which were discussed in our previous “ISPF Power Tools” series (see “Resources” at the end of this article for links to these articles). These fields display as eight characters, but are actually 255 characters and scrollable. The ZEXPAND command (F4 on the default UDLIST Keylist–ISRSABX) displays a separate screen with the entire 255-character line command field. Several updates introduced in ISPF 7.1 enhance access to the z/OS UNIX file system:

The SRCHFOR command. UNIX directory lists under z/OS 2.1 now support the use of the SRCHFOR command from the directory list command line. The SRCHFOR command was first introduced for data set lists in ISPF 5.2 and was extended to member lists in ISPF 5.5. This command searches files for specified text, produces a report file that details the results and flags the files where the text was found.

Block line commands. These are supported for line commands issued in the eight-character input field in front of the directory or file name. An example of a block line command would be using //>cat to mark the first file in a list to be displayed and // to mark the last file to be listed. This is the same format used for block commands on a data set list and in the IBM System Display and Search Facility (SDSF), but can be used with any ISPF built-in line command, z/OS UNIX commands, TSO commands and REXX or CLIST programs. The command may follow the opening // or the closing //, and multiple blocks may be defined on the list at the same time, although nested block commands aren’t permitted.

File path substitution. A path substitution character (!) can be used when issuing commands against a UNIX file. This is equivalent to the (/) character used in commands entered on a data set list. Normally, the file path is passed as the first parameter to a command typed in the line command field such as >cat issuing the UNIX shell command “cat” against the full file path for the current file. If you needed the file path as the second (or later) parameter, you would use the exclamation point (!) to represent the full file path.

Automatic lowercasing of file paths for the UDLIST command. If the UDLIST command is issued from an ISPF command line that’s uppercased by default, the file path will be translated to lowercase when no match is found. Because TSO was once uppercase-sensitive, there are many ISPF command lines and input fields that will automatically force entries into uppercase. UNIX file paths aren’t only case-sensitive, they’re most often lowercase. The improved UDLIST command addresses this issue.

UNIX directory list from ISPF option 3.4. In ISPF option 3.4 (DSLIST) (see Figure 2), the Dsname Level field also accepts UNIX file paths and will display the UNIX directory list. In previous releases, the Dsname Level automatically uppercased the input and required entries to conform to z/OS data set name specifications.

Start ISPF with multiple windows. A new variable, ZSTART, can be defined under ISPF option 7.3. The format of the variable definition is: ISPF;command;command… (see Figure 3). This example is from the Dialog Test Option (7.3) on an ISPF 7.1 system where option 8 is SDSF. In this case, SDSF is invoked, the Held Output queue (H) is displayed and a screen name is applied using SCRNAME. The PERM option maintains the screen name until the user exits ISPF. The START DSLIST CLASS command creates a second screen displaying all data sets that start with the user’s TSO PREFIX (usually your logon ID) and a second level of CLASS. This screen would use the default screen name DSLIST.

The ZSTART variable actually creates a command stack that’s executed each time ISPF starts. You can use it to execute any series of commands, but the beginning of the variable definition must be the letters ISPF in uppercase.

Enhanced member lists. The prompt field on the enhanced member list can be used to pass an argument to a command issued using the line command field to the left of the member name.

Updates to ISPF Edit

Unicode, EBCDIC and ASCII. ISPF’s editor under ISPF 7.1 supports Unicode in both View and Edit modes. This applies to z/OS sequential data sets, PDS/PDSE members and z/OS UNIX files. Additionally, the commands CREATE, REPLACE, COPY, MOVE, CUT and PASTE will automatically convert between EBCDIC, ASCII and UTF-8 (Unicode).

Regular expressions. The FIND, CHANGE and EXCLUDE commands accept regular expressions in the format ‘regexpr’r and r’regexpr’ for any case or rc’regexpr’ and ‘regexpr’rc for case-sensitive searches. Note that regular expressions require the C run-time library. If you aren’t familiar with regular expressions, here are some basics:

• Square brackets [] are used to indicate character sets. For example, [Ww]in matches “Win” or “win” and [ABC][123] matches A1, A2, A3, B1, B2, B3, C1, C2 and C3.
• The caret (^) symbol negates, so that w[^i]n would match “won”, but not “win”.
• The period, question mark and asterisk (.?*) are different types of wildcards. A period matches exactly one occurrence of any character; the question mark matches zero or one of a preceding character, and the asterisk matches zero or more occurrences of a preceding character. Therefore, in regular expressions, a period is combined with a question mark or asterisk to create true wildcards. For example, find ‘wh.?’rc would match “why” but not “when” and find ‘wh.*’rc would match “why” and “when”.

For more information on using regular expressions in ISPF Edit, refer to the ISPF Edit and Edit Macros documentation for z/OSV2R1.0.

Enhanced JCL program highlighting. The HILITE JCL option validates lowercased characters in a JCL member. UNIX file paths in a JCL PATH= statement are case-sensitive and typically lowercase, while a lowercase DSN= isn’t valid.

Support for a longer edit command line. The ZEXPAND command (F4 on the default Edit Keylist–ISRSPEC) displays a screen with a 255-character command line in View or Edit mode. This is similar to the ZEXPAND command for UNIX directory lists, mentioned earlier, but is only valid when actually editing or viewing a file.

MVS/JCL Updates

There are many enhancements to MVS/JCL and the Job Entry Subsystem (JES2) in the 2.1 release of z/OS. Let’s take a look at a few of those that may prove useful to general users:

The job correlator adds a 64-byte token to identify programs executed under JES2. Included in this field is a 32-byte, user-definable descriptor. This descriptor can be set using the JOB statement operand UJOBCORR= (see Figure 4). The UJOBCORR operand is accepted in JES3 systems, but is ignored.

Enhanced JCL and system symbolics. A new JCL statement, EXPORT, allows variables, known as symbolics, to be passed to programs used in the JCL via the EXPORT statement’s SYMLIST= operand. Multiple EXPORT statements can be used in JCL. In addition, a new DD statement operand, SYMBOLS=, can be used to access exported symbolics. The SYMBOLS operand is only valid for DD statements that define in-stream inputs (DD * or DD DATA,DLM=).

In Figure 4, the EXPORT statement identifies a symbolic named DATASET, which is defined using a standard JCL SET statement. The //SYSIN  DD *,SYMBOLS=JCLONLY allows this symbolic to be accessed by the IDCAMS command DELETE &DATASET.

The DD operand SYMBOLS=JCLONLY allows access to those symbolics identified by an EXPORT statement and symbolics created by the JES IAZSYMBL symbol service.

The DD operand SYMBOLS=EXECSYS allows access to the same symbolics as JCLONLY and system symbolics for the system on which the job is executing. This would include values such as &SYSUID and &SYSNAME.

The DD operand SYMBOLS=CNVTSYS allows access to the same symbolics as JCLONLY and system symbolics for the system on which the JCL was converted.

Conclusion

z/OS V2R1 is a significant update to the z/OS operating system with many new and enhanced features. We encourage you to further research the changes z/OS 2.1 is bringing to the System z platform. Be sure to look for future articles examining the ISPF Editor (ISREDIT).

Resources

• ISPF Power Tools, available at http://entsys.me/gczaf
• Line commands for data set list displays, available at http://entsys.me/kk7ud
• Primary commands specific to data set list displays, available at http://entsys.me/14kxf
• Primary commands for any screen, available at http://entsys.me/p7tid  
• Member lists, available at http://entsys.me/zuqbf.