Like all high-level languages, RPG has a set of restrictions. RPG IV has fewer limitations than previous versions of RPG. The features listed in Table 1.4 document any significant RPG language restrictions, along with several previous limitations that have been removed in RPG IV. These are marked "No limit."
Feature | Limit |
---|---|
AN/OR (positions 7 to 8 of Calc spec) | No limit |
Array elements | 32,767 per array/table |
Arrays and tables | No limit |
Compile-time array or table length | 100 positions |
Data structure length | 65,535 positions for named data structures 9,999,999 for unnamed data structures |
Data structure occurrences | 32,767 per data structure |
Edit word length | Literal: 24 positions Named Const: 115 positions |
Field length | Char: 65,535 positions; Numeric: (31, 30) |
Field name | 4,096 characters |
Files (open files per program) | No limit (actually 32767) |
File key length | 2,000 positions |
Lines per page (program-described) | Minimum of 2; maximum of 255 |
Lines per page (externally described) | Minimum of 1; maximum of 255 |
Matched fields (combined length) | 256 positions |
Named constants | Char: 1024 positions; Numeric: (31, 30) |
Nested IF, DOxxx, SELECT, FOR groups | 100 levels |
Parameters | 255 program to program; 399 to procedures |
Primary files | 1 per program |
Printer files | No limit (8 standard overflow indicators available) |
Program Status Data Structure | 1 per program |
Record address files (ADDROUT) | 1 per program |
Record format length | 99,999 positions (system limit is) |
Spacing and skipping printed output | 0 to 255 lines |
Subroutines | 32,767 per program |