From MidrangeWiki
< RPG(Redirected from RPG 400)
Jump to: navigation, search
  • If you are familiar with various different versions of RPG you can think of this as being akin to RPG III and 1/2.
  • Before we compare one programming language to another, such as RPG and COBOL or SQL it can be useful to see what stuff is available in each language.

Note that

  • RPG/400 can do just about anything that earlier versions of RPG such as RPG III could do and a whole lot more,
  • while RPG 4 can do just about anything that RPG/400 could do and a whole lot more.

New stuff as of RPG/400

This is from the perspective of someone moving from RPG on S/36 SSP to RPG on the 400. Some of these capabilities may have existed with RPG on S/38.

  • The library list concept was new to the 400. Previously, files were not in libraries, only software was in libraries.
  • Test a field for various kinds of validity before processing it
  • External File Definition Support. Previously we just had Internal File Definitions. Initially Externally Described Files were programmed using DDS and later SQL.
  • Massive new support for various kinds of Data Structures and Data Areas, which also can be Externally described
  • Open and Close files
  • Rename files and fields on input
    • Suppose you have two files with same record format names ... you can rename one to keep them straight ... for example if you accessing the same file more than once in the same program for different reasons
    • Suppose naming convention of some files are such that the same field name ends up in two or more files ... you can do renaming to avoid aliases
    • You can also do renaming to make it easier to see what the function of some field names are in this program
  • Key Lists for access to indexed files
  • Expansion to the controls on accessing a file where
  • Many new structured programming capabilities in conjunction with IFxx
  • Refer to indicators using *IN## *ON or *OFF
  • Concatenation and Substringing
  • Scan a file to locate some character string, and record where it is (byte count sideways)
  • CALL a sub-program and be-called, with parameters passed between them
  • Output an interactive screen to the users, then read it back in and act on the data provided