InnovationQ will be updated on Sunday, Oct. 22, from 10am ET - noon. You may experience brief service interruptions during that time.
Browse Prior Art Database

Build a Stem Variable to be Used by Multiple REXX Execs and Interface Programs

IP.com Disclosure Number: IPCOM000031131D
Original Publication Date: 2004-Sep-13
Included in the Prior Art Database: 2004-Sep-13
Document File: 7 page(s) / 74K

Publishing Venue



A methodology for passing elements of a REXX stem variable to an interface program is disclosed. This methodology allows the REXX application exec to reference primary and secondary elements of the stem variable by customizable descriptive names without modifying the interface program. The interface program acts upon the primary elements of the stem variable as defined by their position in the stem variable using a single numeric index.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 24% of the total text.

Page 1 of 7

Build a Stem Variable to be Used by Multiple REXX Execs and Interface Programs

Definition of Terms Used

A constant symbol starts with a digit (0-9) or a period.

A simple symbol does not contain any periods and does not start with a digit (0-9).

A compound symbol permits the substitution of variables within its name when you refer to it. A compound symbol contains at least one period and at least two other characters. It cannot start with a digit or a period, and if there is only one period in the compound symbol, it cannot be the last character.

A compound symbol name begins with a stem (that part of the symbol up to and including the first period). This is followed by a tail, parts of the name (delimited by periods) that are constant symbols, simple symbols, or null. The derived name of a compound symbol is the stem of the symbol, in uppercase, followed by the tail, in which all simple symbols have been replaced with their values. Stem names may be specified in any case - they are always translated to uppercase.

A stem variable comprises all of the compound symbols and their assigned values that define elements associated with a stem. Stem variable elements, like all REXX variables, are self-defining at their first reference.

An element is an individual member of the array of string variables that are stored in a stem variable.

Primary elements of a stem variable are those that are stored and referenced by a single numeric index. Only primary elements are acted upon by the (STEM option for the TSO/E REXX services EXECIO and OUTTRAP.

Field refers to a data element defined to the interface, without respect to how it is stored or accessed.

A defined value is a constant value that is defined by the interface function. It describes one of the possible values associated with an input or output field and is used in assignments or comparisons that reference its associated field.

A suffix name is the descriptive name given to a defined value. The suffix name is used to create the name of the stem variable element that holds a defined value and is cross-referenced using its value as a tertiary index.

In this design, fields defined by the interface are stored as primary elements in a stem variable. Their associated defined values and suffix names are stored as supplemental elements in the stem variable.

The defined value supplemental element name is of the form stemname.alias_suffix where 'alias_suffix' is a string constant that does not incur substitution of the value held in the alias variable. This name is intuitive to the application programmer and is used to set or compare the value in the associated primary element.


Page 2 of 7

The suffix name supplemental element name is of the form stemname.alias.value where alias is the name of the alias variable (which resolves to the primary element numeric index) and value is the defined value itself. As with all components of a stem variable element name, the value can be specified as a varia...