Mainframe REXX

Basics:
The Base Control Program (BCP) or MVS is the z/OS base element, which provides essential operating system services to the mainframe users. Time Sharing Option (TSO), Interactive System Productivity Facility (ISPF) and System Display and Search Facility (SDSF) are few of the commonly available mainframe services. Using TSO the users log into the mainframe. After that the users use ISPF panels to perform several tasks on mainframe such as editing and compilation of new programs, allocation of datasets, checking the spool for the output etc.

As z/OS is a command based environment, the routine tasks need to be performed manually using one command at a time, which is a time consuming and inefficient way in case of repetitive tasks. REXX is the solution to this problem. REXX is a programming language, which can interact with all the essential services like TSO, ISPF, SDSF, DB2, etc. It has the ability to invoke the TSO or ISPF commands directly, automating the repetitive tasks on mainframe.

What it does:
Unlike COBOL or PL/I, which are mainly used for the Business applications and system oriented tasks, respectively, REXX is used to develop such utilities, which will automatically perform mainframe operations, making it time efficient for the recursive tasks.

For example the TSO command to allocate a fixed block dataset of the record length 100 is as follows:’

TSO ALLOC FI(F1) DA(‘HLQ.FILE1’) NEW SPACE(1,1) CYL LRECL(100)
RECFM(FB) BLKSIZE(0)

This command can be issued through a REXX program which can be executed as many times as required to allocate expected number of datasets:

ADDRESS TSO

“TSO ALLOC FI(F1) DA(‘HLQ.FILE1’) NEW SPACE(1,1) CYL LRECL(100)
RECFM(FB) BLKSIZE(0)”

This REXX program can be written inside a PDS member or a sequential file and then through the following TSO command it can be executed directly:

TSO EXEC ‘name of the PDS (member name)/sequential file name’ EXEC

or in the READY prompt the following command can be executed:

EXEC ‘name of the PDS (member name)’ EXEC

or using 3.4 option in the ISPF panel of the PDS, containing the required REXX program, can be browsed and by the command EX before the intended member the dataset allocation task can be performed.

Features:
1. REXX supports free-form syntax. That means unlike COBOL this language follows no fixed structure. It uses only one data-type, character string.

2. It provides simplified debugging and tracing capabilities, as well as easy to use I/O facilities.

3. REXX has an advanced collection of built-in functions, specially word and string processing functions such as parsing function.

4. REXX is an interpreted programming language developed by IBM. Although a compiler is also available, most of the REXX programs are interpreted.

5. When required, this language manages the storage automatically and at the same time it provides crash protection functionalities.