ILE RPG Programmer's Guide
PCML Restrictions
The following are restrictions imposed by PCML regarding parameter
and return value types.
- The following data types are not supported by PCML:
- Date
- Time
- Timestamp
- Pointer
- Procedure Pointer
- 1-Byte Integer
- 8-byte Unsigned Integer
- Return values and parameters passed by value can only be 4 byte
integers (10i 0).
- Varying-length arrays, and data structures containing varying-length
subfields are not supported.
- When a data structure is used as a parameter for a *ENTRY PLIST,
or a prototyped parameter is defined with LIKEDS, some PCML restrictions
apply:
- The data structure may not have any overlapping subfields.
- The subfields must be coded in order; that is, the start position
of each subfield must follow the end position of the previous subfield.
- If there are gaps between the subfields, the generated PCML for
the structure will have subfields named "_unnamed_1", "_unnamed_2"
etc, of type "char".
- RPG does not have the concept of output-only parameters. Any parameters
that do not have CONST or VALUE coded have a usage of "inputoutput".
For inputoutput parameters, the ProgramCallDocument class requires
the input values for the parameter to be set before the program can
be called. If the parameter is truly an output parameter, you should
edit the PCML to change "inputoutput" to "output".
The compile will fail if you generate PCML for a program or module
that violates one of the restrictions. The PCML will be generated,
but it will contain error messages as comments. For example, if you
use a Date field as a parameter, the PCML for that parameter might
look like this:
<data name="DATE" type=" " length="10" usage="input" />
<!-- Error: unsupported data type -->
[ Top of Page | Previous Page | Next Page | Contents |
Index ]