IBM's Open Access RPG Edition

IBM® Rational® Open Access (OA) RPG Edition is an IBM i no-charge Licensed Program Product that allows low-level interception of RPG file data. This more formal definition is available on IBM’s Open Access home page:

IBM Rational Open Access provides the runtime enablement for the I/O handlers that are developed to extend ILE RPG I/O capabilities to new resources and devices. It allows programmers to use the simple, well-understood RPG I/O model to access new devices and resources that are not directly supported by RPG. Rational Open Access RPG Edition is a full-featured version of the limited support provided by native RPG SPECIAL files.

ASNA WingsRPG™ and ASNA Mobile RPG® both make heavy use of OA. Thanks to OA, both products are able to offer display file proxies for RPG programs. These stand-in display files are transparent to the RPG program–it has no direct knowledge that it isn’t reading and writing to a traditional display file.

OA is an API that enables the low-level input/output file IO interception in ILE RPG programs. To be useful, OA needs to have handlers registered with it. Handlers are IBM i program objects that send or receive data to the OA API. In the case of WingsRPG and Mobile RPG, their respective handlers act as liaisons between the OA API and the WingsRPG /Mobile RPG presentation layers.

You don’t need to anything with OA, but for your interest you can read more about the technical details of it here.

IBM’s Rational Open Access…

  • Is a no-charge LPP feature included with IBM i. It is installable from the Licensed Program Products menu.
  • Works with IBM i V6R1 and up. OA doesn’t, and won’t be patched to, work with IBM i V5R4 or less.
  • Requires ILE RPG. Early in OA’s life, IBM hinted in the press that OA might one day support ILE CL, but those rumors aren’t heard much anymore. The good news is that it’s a pretty simple process to use the IBM i CVTRPGSRC command to convert RPG III source to ILE RPG, so this constraint isn’t a big problem for WingsRPG  users.