Rexx for CICS, which IBM provides free as part of CICS Transaction Server for VSE/ESA V1.1.1, is a powerful application development resource. Think of it as a development environment, not just a tool.
To understand the features and functions of Rexx for CICS on z/VSE, you may wish to read the article “Rexx for CICS,” by Rich Smrcina in the June/July 2007 issue of z/Journal. Available at www.zjournal.com/pdfIssue/pdfArticle/Smrcina.zJ.June-July07.pdf, the article provides a great introduction to Rexx for CICS. If you also experiment with it, as our site did, you’ll quickly start to see its power.
The Basics of Rexx for CICS
As Rich described in his article, Rexx for CICS includes a hierarchical file system, the Rexx File System (RFS), that’s implemented in a set of VSAM Keyed Sequence Data Set (KSDS) files. Each set of RFS VSAM clusters is referred to as a filepool and the IBM-provided Rexx for CICS start-up refers to the first filepool as “POOL1” (other filepools can be defined to expand the file system as needed). The RFS hierarchical file system provides for directories and files to be created in a manner similar to working in an MS-DOS file system on a PC.
The RFS also provides basic security over the directories and files in the file system. Directories and files can be marked as “private” (only the original creator of the file has access), “public” (any user has access), or “secured” (access is controlled by a security exit called CICSECX2). See Appendix G of the IBM CICS Transaction Server for VSE/ESA REXX Guide for more information.
Along with the RFS, there are three CICS-supplied transaction definitions; REXX, FLST, and EDIT. The REXX transaction provides an interactive execution environment where any of the Rexx for CICS commands can be executed manually. The FLST transaction provides a CMS FILELIST-like environment for accessing the files in the RFS.
The Rexx for CICS RFS support automatically generates a “users” directory in the default filepool (i.e., POOL1:\USERS) and a user’s “home” directory in the users directory on first use of any of the CICS-supplied Rexx for CICS transactions. The edit transaction provides a powerful CMS Xedit-like, full-screen editor, which provides the ability to both edit files in RFS as well as directly edit members in a VSE Library. This editor supports most of the command line and prefix commands that CMS Xedit supports while accommodating development of edit macros (written in Rexx, of course).
Rexx for CICS provides a perfect environment for developing Rexx-based CICS applications; it supports most CICS command-level Application Program Interfaces (APIs) as well as Basic Mapping Support (BMS). It also provides a powerful Rexx procedure debugging feature that allows single stepping through the execution of your Rexx for CICS procedures via the TRACE ? command. In addition, it includes “panel” support that gives you a simple way to develop application screens; it’s similar to the panel support provided in ISPF on MVS, OS/390, and z/OS.
Extending Rexx for CICS
Unfortunately, as provided, you can’t really use the Rexx for CICS support for anything but developing Rexx applications in CICS. Nevertheless, the FLST transaction and Xedit-like editor appear to be a desirable place to do more z/VSE work. At my shop, we went to work to extend it to provide a platform for doing more of our daily tasks. We quickly identified two main features as not being included: a way to print files in the RFS and submit Job Control Language (JCL) members (stored in the RFS) for execution in the z/VSE system’s batch partitions.