Overview of Product Features

The following list is the product features of REXX/CICS described in this section.

SAA Level 2 REXX Language Support Under REXX/CICS

REXX/CICS is currently at REXX language level 3.48 and provides all Systems Application Architecture* (SAA) REXX Level 2 capability (as described in the SAA Common Programming Interface REXX Level 2 Reference, SC24-5549) except for stream I/O and REXX language processor exits.

Note:
The POWER HOST environment is not implemented in REXX/CICS.

Support for the Interpretive Execution of REXX Execs

Interpretive execution of REXX execs provides the ability to create and run REXX execs without first compiling them. The use of the interpreter provides a very productive development, customization, prototyping, and command list (CLIST) processing environment. This is because it provides a fast development cycle, source level interactive debug, and a native CICS-based development environment, in one integrated package.

Note:
REXX execs can freely invoke CICS programs and transactions written in any CICS supported language.

CICS-Based Text Editor for REXX Execs and Data

A native CICS text editor, similar to the VM/CMS XEDIT editor, is being provided as part of REXX/CICS, so execs (and other data) can be created and modified directly under CICS. Edit support is provided for files residing in the provided VSAM-based REXX file system (RFS), and for files existing in members in the VSE Librarian sublibraries.

VSAM-Based File System for REXX Execs and Data

REXX/CICS includes the REXX File System (RFS), a high-level file system that is hierarchically structured and is similar to the Operating System/2* (OS/2*), Advanced Interactive Executive* (AIX*), and the VM Shared File systems. The RFS automatically provides each REXX user with a file system in which to store execs and data. There is a file list utility to facilitate working with this file system, the text editor supports editing members of this file system, and execs to be run are loaded from this file system. This file system is VSAM based for performance, security, and portability reasons.

VSE Librarian Sublibraries

These can be used as an alternative to the RFS for REXX execs. A REXX exec in a VSE librarian sublibrary must have have a member type of .PROC.

Dynamic Support for EXEC CICS Commands

Support for most EXEC CICS API commands is included in REXX/CICS. This is a dynamic interface (no EXEC CICS command translation pre-processing step is needed). This support is provided through the addition of an ADDRESS CICS command environment.

REXX Interface to CEDA and CEMT Transaction Programs

This allows CEDA and CEMT commands to be easily issued from REXX execs, with any subsequent output placed into a REXX variable, instead of being displayed at the terminal. This facilitates the automation of many CICS administration and operation activities, and is an excellent programmer aid.

High-level Client/Server Support

REXX/CICS provides integrated client/server support to REXX execs by providing facilities to allow REXX execs to act as clients (which make requests to REXX/CICS servers) and by providing facilities to allow REXX execs to act as servers (with the ability to wait for and process requests from REXX/CICS clients).

REXX/CICS facilities are provided which allow REXX/CICS servers to wait on requests from clients (WAITREQ), and to retrieve (C2S) and set (S2C) the contents of client REXX variables.

Note:
Servers do not execute as nested execs of clients, but rather execute as parallel entities.

Servers use Automatic Server Initiation (ASI) to start automatically when they receive their first request.

Support for Commands Written in REXX

REXX/CICS supports the ability for users to write new REXX/CICS commands in REXX. These commands do not function as nested REXX execs, and unlike nested REXX execs have the ability to get and set the values of REXX variables in the user exec that issued the command. Therefore, commands written in REXX can have similar capabilities as commands written in Assembler or other languages. Also, commands can be quickly written in REXX to speed systems development (in a building block structure), and then can selectively be rewritten in Assembler (or any other CICS supported language) at a later date, if performance requirements dictate.

Command Definition of REXX Commands

REXX/CICS includes as one of its basic facilities, the ability for systems administrators and users to easily and dynamically define new REXX commands, either on a system-wide or user-by-user basis. One of the greatest strengths of REXX is its ability to interface cleanly with other products, applications, and system services. The goal for providing a command definition facility for new or existing commands is to facilitate the rapid and consistent high-level integration of various products and services together through the use of REXX. REXX command definition is accomplished with the REXX/CICS DEFCMD and DEFSCMD commands.

Support for System and User Profile Execs

To facilitate REXX/CICS system and user environment tailoring, REXX/CICS attempts to execute CICSTART, CICSPROF, and user PROFILE execs, if they exist. CICSTART is the system profile exec (STARTUP profile) and it is issued before the first user exec is run after CICS system restart. CICSPROF is the system user profile exec and it is issued when a user enters REXX/CICS for the first time since the CICS system restart. CICSPROF also invokes the user PROFILE.

Shared Execs in Virtual Storage

REXX/CICS supports shared copies of REXX execs residing in virtual storage. Shared execs improve the interactive response time of REXX applications, and sharing reduces the total virtual storage requirement. Execs can be pre-loaded by using the EXECLOAD command. Common system-wide execs are good candidates for pre-loading through the placement of EXECLOAD commands in the CICSTART exec.

SQL Interface

REXX programs may contain SQL statements. These statements are interpreted and executed dynamically. The results of the SQL statements are placed into REXX variables for use within the REXX program.

Programming Considerations

To embed SQL statements withn a REXX exec, the host command environment must be changed, The ADDRESS instruction, followed by the name of the environment, is used to change the host command environment.

The REXX/CICS command envlironment that supports SQL statements is EXECSQL.

Embedding SQL statments

You can pass the following SQL statements directly to the EXECSQL command environment:

You cannot use the following SQL statements: