BR - VSAM/BDAM Browser for TSO/ISPF

                 

Overview

BR may be invoked in the ISPF/PDF environment as a TSO command, a program, or an EDIT macro to browse VSAM and BDAM data sets. Additional information about VSAM support in ISPF/PDF is available in the TSO/VSAM document.

BR is written in assembler. It is a free program, available in source-code and load-module format in the freeware section of this Web site.

           

Invocation

BR must be invoked during an on-line ISPF session, for example be entering the TSO BR command.

  1. Syntax of TSO command
    BR dsname		data set name
       VOL(volser)		volume serial (optional) 
  2. Syntax of EDIT macro
    !BR dsname 
  3. BR may be invoked as a program using the ISPF SELECT service, the TSO CALL command, or from an assembler program using a LINK macro. A fully-qualified dsname and a volser may be specified in the PARM. Here is an example where BR is invoked using the ISPF SELECT service:
    SELECT PGM(BR) <PARM(dsname<,volser>))> 

Note: BR must run under APPLID(ISR) which is the standard ISPF/PDF application ID. If BR is invoked under a different APPLID, it re-invokes itself with APPLID(ISR). This ensures PFKs are correct when BR is invoked from a different APPLID, for example when it is executed from the SDSF environment.

Installation and Tailoring

To install BR and make it available to ISPF/PDF users, download the BR load-module from the freeware section of this Web site and load it into a load-library accessible by ISPF applications.

Operation

BR first determines if the specified data set is NOT supported by ISPF/PDF's BROWSE service, i.e. one of the following:

  1. VSAM (ESDS, KSDS, RRDS, VRDS, LDS)
  2. BDAM
  3. BLKSIZE=0 or DSORG=0 or KEYLEN>0 or DS1LSTAR=0 or RECFM=VBS

Based on previous determination, BR will:

  1. Invoke the ISPF/PDF BROWSE service to process the data set, if BROWSE supports it.
  2. allocate the data set, process it using VSAM or EXCP, and display the data via BRIF (the BROWSE interface), if the standard ISPF/PDF BROWSE service does not support it.

NOTES:

  1. When BR is invoked, the dsname is optional. When no dsname is specified, BR tries to find a dsname on the screen (at the cursor position) and if this fails, then BR prompts the user to enter the dsname.
  2. If BR is invoked as a command or an edit macro with a dsname that is not enclosed in quotes, BR prefixes it with the userid.
  3. A volume serial is optional. BR assumes that the data set is cataloged if no volser is specified. If the data set is not cataloged, BR uses the ZDLVOL variable (set when a command is invoked on the Data Set List panel) to determine the volume serial.

Primary Commands

Starting in 2009, BR now supports the following primary commands:

Point-and-shoot Capability

If the user invokes BR without specifying a dsname, BR tries to find a dsname on the screen, at the cursor position; this technique, called "point-and-shoot", is implemented in two flavors:

  1. When it is invoked as an EDIT or VIEW macro, BR uses standard ISREDIT calls to retrieve the text under which the cursor is currently located, scans the text for specific delimiters, then extracts the data set name.
  2. When it is invoked as a program or as a command, BR extracts the screen image and cursor position from the TLD, an ISPF control block that is not part of the standard programming interface (this technique may not work in future releases of ISPF).

Note that for the point-and-shoot capability to work, it is imperative that BR be invoked with MODE(FSCR). Unfortunately, if you invoke BR via the TSO command, the SELECT service invokes BR as a command and uses MODE(LINE) as a default, which prevents BR from retrieving the data set name. If you want to use BR's point-and-shoot capability outside of an ISPF/PDF EDIT or VIEW session, you must use one of the following options:

  1. Instead of just TSO BR, type the following command, exactly as shown (no closing parenthesis)
    TSO BR) MODE(FSCR 

    not something you want to type too often, but if you set it up as a PFK, it's allright.

  2. Define BR as a command in the ISPF command table, for example like this:
    BR     0 SELECT PGM(BR) MODE(FSCR) 

    then you can access BR just by typing BR on the command line, on any screen.

  3. Write a simple REXX exec (or a CLIST) called BR to invoke the BR command with MODE(FSCR); this is an example written in REXX:
    ARG dsn
    "ISPEXEC SELECT CMD(BR" dsn ") MODE(FSCR)" 

    then you can access BR just by typing TSO %BR

  4. Modify ISPCMDS to add MODE(FSCR) to the definition of the TSO command
    SELECT SUSPEND CMD(&ZPARM) MODE(FSCR) 

Make ISPF/PDF aware of the BR command

Starting with ISPF 4.8 and OS/390 R8, the ISPCCONF EXEC can be used to update the Configuration Table. Enter TSO ISPCCONF, then add these two lines to the Configuration Table:

VSAM_BROWSE_ENABLED = YES
VSAM_BROWSE_COMMAND = BR / 

These two lines tell ISPF/PDF to execute the BR command when a user tries to browse a VSAM data set, which can happen when the user enters this:

FASTPATH supports BR

The FASTPATH program invokes the BR command when the ISPF BROWSE service fails.

History

The first version of BR was written in 1988, shortly after ISPF/PDF V2R3 became available and provided the BRIF service. It was called XBRVS and based on a sample program found in the ISPF V2R3 Redbook. In 1990, a BDAM browser called XBRDA was written during a VSE/MVS conversion project in Los Angeles. In 1992, XBRVS and XBRDA were merged into BR which was distributed in file 183 of the CBT tape. Although most of the BR code was written from 1988 to 1997, significant changes were made in 2005, in particular to support extended-addressability VSAM data sets. Most of the changes are listed at the beginning of the BR source code.

Search key-words: mvs os/390 os390 z/os zOS TSO ISPF CBT software application dialog VSAM DAM BDAM DASD disk display view list vol ser volume online on-line unit addr address private public storage free space REXX UCB ISMF DVTOC dataset datasets vsbr vsambrowse