Running
- The FREE operation is not supported by RPG IV. See Unsupported RPG III Features.
- 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.
- 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.
- ILE RPG does not interpret return codes that are not 0 or 1 for calls to programs or procedures that end without an exception.
- 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.
- 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 cycle-main procedures. Recursion is allowed for subprocedures.
-
When the cycle-main procedure of an ILE RPG module is cancelled from the program stack without reaching the part of the RPG cycle that checks *INLR, the *TERM processing will be done.
When an OPM RPG program is cancelled from the program stack without reaching the part of the RPG cycle that checks *INLR, the *TERM processing will not be done.
*TERM processing includes the following:- opened global files are closed
- data areas locked by the program are released
- the program or module is set so that program variables will be refreshed for the next call.
If *INLR was on when an ILE RPG cycle-main procedure was canceled, *INLR will not be on for the next call to the procedure, and the RPG cycle will begin normally with *INIT.
If *INLR was on when an OPM RPG program was cancelled, it will still be on for the next call to the program and the RPG cycle will proceed to *TERM without performing the *DETC part of the cycle.
- 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.
- 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.