Support for PL/I data description entries

In the PL/I data description entries specified in a copybook, FM/Db2 supports:

  • PL/I data attributes VARYING and VARYINGZ for single and double-byte character strings.
  • PL/I bit variables including the VARYING attribute.
  • Binary, decimal, floating point and numeric picture data (excluding symbols).
  • REFER variables for array extents. Both upper and lower bound array elements may be declared for each dimension. The number of extents for each dimension is always:
    upper bound - lower bound + 1
    Note: A zero extent is not allowed for a PL/I dimension. If a bound is not specified PL/I assumes a value of 1.
  • REFER variable to declare the length of a string variable, character (AN), varying-length character (VC) or zero-terminated character string (ZC) in bytes.
  • FM/Db2 also supports PL/I double-byte character variables (DB), varying-length double-byte character (VD) and zero-terminated double-byte characters (Z2) as byte pairs. FM/Db2 also supports bit strings (BT) and varying bit string (VB) variables.
  • REFER variables can be declared as integer, fixed binary, packed decimal, floating point, or character string variables.
  • UNION declarations at any level which can have varying length (REFER string length or REFER array extents).
    Note: UNIONS can contain overlays of different data types, which may require template workbench record selection criteria or SHOW control if data is not displayable.

FM/Db2 ignores:

  • INIT data values
  • REFER start expression, for example,
    VAR(, expr Refer abc, )  or
    CHAR(expr Refer abc).
  • EXTERNAL attributes
  • DEFINED structure overlays
  • LIKE structure attributes
Note: In general, FM/Db2 treats Numeric Edited fields as alphanumeric. A special code, ZA, is used for unsupported zoned decimals.