Improving performance using internal expression processing
For simple criteria, FM/IMS can process the
expression internally without needing to invoke
REXX. This can result in faster processing of layout
identification and field selection criteria. If an
expression is not eligible for internal processing,
FM/IMS displays the message REXX required
when you press Enter on the relevant panel. In this
case, you can choose to either modify the expression
so that REXX is not required, or use the expression
with REXX processing instead of internal processing.
- Literal strings: These include ordinary quoted strings as well as binary and hexadecimal strings.
- Numerics: Unlike REXX,
the internal expression processor distinguishes between
character and numeric types. To ensure internal
processing uses the correct numeric value, enter
numeric data as unquoted strings.
For example, the internal expression processor treats the string
5
as a number and compares it equal to any other numeric with a value of five. However, it treats the string'5'
as character data and compares it equal to a string containing X'F5' (with optional leading and trailing blanks for non-strict comparison). REXX treats both strings the same and handles them as character data, but allows them to behave as numbers in appropriate contexts.Non-floating point numerics are limited to 31 decimal digits, and floating point numerics are limited to the range of numbers that can be stored as a double-precision floating point number.
- Comparison operators: The
internal expression processor supports all the
REXX comparison operators.
The internal processor performs numeric comparisons when both operands are numeric or contain numeric data (formatted references to numeric fields, or FLD references specifying a numeric formatting type); bit comparisons when both operands are bit fields; otherwise, the internal processor performs character comparisons.
Where both operands have the same value, numeric comparisons match regardless of the length and type of the data. Bit comparisons match only when both bit fields are the same. Leading zero-bits are ignored in the longer field if the fields are not the same length. Character comparisons match only if the two strings are identical, except that leading and trailing blanks are ignored by the non-strict operators. The internal expression processor compares character strings byte by byte according to the standard EBCDIC collating sequence and, where a shorter string matches a longer string up to the end of its length, the longer string is deemed to be greater.
- Logical AND (&) and OR (|) operators: The only other binary operators that the internal processor allows are the logical AND (&) and inclusive OR (|) operators. You can use the plus (+) and minus (-) operators before decimal numerics (to indicate sign), and before and within floating point numerics as defined by the REXX syntax.
- File Manager field references: The internal expression processor supports both formatted and unformatted references.
- Parentheses
Related topics