Differences Between OPM RPG/400 and ILE RPG
Running
1. The FREE operation is not supported by RPG IV.
2. Certain MCH messages may appear in the job log that do not appear under
OPM (for example, MCH1202). The appearance of these messages does not
indicate a change in the behavior of the program.
3. If you use the nonbindable API QMHSNDPM to send messages from your
program, you may need to add 1 to the stack offset parameter to allow for the
presence of the program-entry procedure in the stack. This will only be the
case if the ILE procedure is the user-entry procedure, and if you used the
special value of '*' for the call message queue and a value of greater than 0 for
the stack offset.
4. ILE RPG does not interpret return codes that are not 0 or 1 for calls to pro-
grams or procedures that end without an exception.
| 5. When the cancel handler for an ILE RPG program receives control, it will set
| the system return code to 2. The cancel handler for an OPM RPG program
| does not modify the setting of the system return code.
6. When recursion is detected, OPM RPG/400 displays inquiry message
RPG8888. ILE RPG signals escape message RNX8888; no inquiry message is
displayed for this condition. Note that this only applies to main procedures.
Recursion is allowed for subprocedures.
7. If decimal-data errors occur during the initialization of a zoned-decimal or
packed-decimal subfield, then the reset values (those values use to restore the
subfield with the RESET operation) may not be valid. For example, it may be
that the subfield was not initialized, or that it was overlaid on another initialized
subfield of a different type. If a RESET operation is attempted for that subfield,
then in OPM RPG/400, a decimal-data error would occur. However, a RESET
to the same subfield in ILE RPG will complete successfully; after the RESET,
the subfield has the same invalid value. As a result, attempts to use the value
will get a decimal data error.
| 8. In ILE RPG, positions 254-263 of the program status data structure (PSDS)
| contain the user name of the originating job. In OPM RPG, these positions
| reflect the current user profile. The current user profile in ILE RPG can be
| found in positions 358-367.
Debugging and Exception Handling
1. The DEBUG operation is not supported in RPG IV.
2. You cannot use RPG tags, subroutine names, or points in the cycle such as
*GETIN and *DETC for setting breakpoints when using the ILE source
debugger.
3. Function checks are normally left in the job log by both OPM RPG and ILE
RPG. However, in ILE RPG, if you have coded an error indicator, 'E' extender,
or *PSSR error routine, then the function check will not appear.
You should remove any code that deletes function checks, since the presence
of the indicator, 'E' extender, or *PSSR will prevent function checks from occur-
ring.
374 ILE RPG for AS/400 Programmer's Guide