Differences Between OPM RPG/400 and ILE RPG
In ILE RPG, the total number of program devices that can be acquired by the
program cannot be different from the maximum number of devices defined in
the device file. OPM RPG/400 allows this through the NUM option.
7. In ILE RPG, the ACQ and REL operation codes can be used with single device
files.
8. In ILE RPG, the relative record number and key fields in the database-specific
feedback section of the INFDS are updated on each input operation when
doing blocked reads.
9. When a referential constraint error occurs in OPM RPG/400, the status code is
set to "01299" (I/O error). In ILE RPG, the status code is set to "01022",
"01222", or "01299", depending on the type of referential constraint error that
occurs:
If data management is not able to allocate a record due to a referential
constraint error, a CPF502E notify message is issued. ILE RPG will set the
status code to "01222" and OPM RPG/400 will set the status code to
"01299".
If you have no error indicator, 'E' extender, or INFSR error subroutine, ILE
RPG will issue the RNQ1222 inquiry message, and OPM RPG/400 will
issue the RPG1299 inquiry message. The main difference between these
two messages is that RNQ1222 allows you to retry the operation.
If data management detects a referential constraint error that has caused it
to issue either a CPF503A, CPF502D, or CPF502F notify message, ILE
RPG will set the status code to "01022" and OPM RPG/400 will set the
status code to "01299".
If you have no error indicator, 'E' extender, or INFSR error subroutine, ILE
RPG will issue the RNQ1022 inquiry message, and OPM RPG will issue
the RPG1299 inquiry message.
All referential constraint errors detected by data management that cause
data management to issue an escape message will cause both OPM and
ILE RPG to set the status code to "01299".
10. In ILE RPG, the database-specific feedback section of the INFDS is updated
regardless of the outcome of the I/O operation. In OPM RPG/400, this feedback
section is not updated if the record-not-found condition is encountered.
11. ILE RPG relies more on data-management error handling than does OPM
RPG/400. This means that in some cases you will find certain error messages
in the job log of an ILE RPG program, but not an OPM RPG/400 program.
Some differences you will notice in error handling are:
When doing an UPDATE on a record in a database file that has not been
locked by a previous input operation, both ILE RPG and OPM RPG/400 set
the status code to "01211". ILE RPG detects this situation when data man-
agement issues a CPF501B notify message and places it in the job log.
When handling WORKSTN files and trying to do I/O to a device that has
not been acquired or defined, both ILE and OPM RPG will set the status to
"01281". ILE RPG detects this situation when data management issues a
CPF5068 escape message and places it in the job log.
12. When doing READE, REDPE (READPE in ILE), SETLL on a database file, or
when doing sequential-within-limits processing by a record-address-file, OPM
RPG/400 does key comparisons using the *HEX collating sequence. This may
376 ILE RPG for AS/400 Programmer's Guide