Rational Open Access: RPG Edition
Rational® Open Access: RPG Edition provides a way for RPG programmers to use the simple and well-understood RPG I/O model to access resources and devices that are not directly supported by RPG.
- Browsers
- Mobile devices
- Cloud computing resources
- Web services
- External databases
- XML files
- Spreadsheets
- And more
- An RPG program that uses standard RPG coding to define an Open Access file and use I/O operations against the file.
- A handler procedure or program that is called by Open Access to handle the I/O operations for the file.
- The resource or device that the handler is using or communicating with.
Open Access is the linkage between parts 1 and 2.
Open-Access handlers
Open Access does not provide the handlers.
- Software tool vendors
- Business partners
- Services organizations
- Users
The provider of the handler can choose the RPG device type whose I/O operations best fit the functions provided by the handler. For example, a user-interface application could map to a WORKSTN file, an Excel document could map to a PRINTER file, and a web service could map to a keyed DISK file.
Two ways to approach Open Access
- The handler is written after the application is written. For example, an existing application that uses 5250 display files is modified to use Open Access for the WORKSTN files.
- The RPG program is modified by adding the HANDLER keyword to the WORKSTN files
- The handler must handle all the operations and requirements of the existing RPG program.
- This type of handler will often be provided by an outside expert such as a software tool vendor or business partner.
- The handler is written before the application is written. For example, the RPG programmer wants to use a web service that returns information for a specific set of criteria.
- The handler provider creates a keyed database file matching the web service with a field for each piece of information returned by the web service, and a key field for each criterion needed by the web service. This file will not hold any data; it will only be used for defining externally-described files and data structures in the RPG program and the handler.
- The handler provider can tell the RPG programmer what I/O operations that the handler will support. For example, it might only support OPEN, CHAIN, CLOSE.
- The RPG programmer codes the RPG program using the file as an externally described keyed DISK file, with the HANDLER keyword to identify the Open-Access handler.
- The handler uses externally-described data structures defined from the same file.
- This type of handler might be written by the same RPG programmer who uses the Open-Access file, or it might be provided by an outside expert.
How Open Access works
When an RPG program performs an I/O operation for a system file, a system data management function is called to handle the operation.
When an RPG program performs an I/O operation for an Open Access file, the Open-Access handler is called. The handler receives a data structure parameter with subfields that enable the handler to perform the correct I/O operation, and provide information back to the RPG program.
If the file is externally-described, it must be available to the RPG compiler at compile-time. Open Access does not require the file to be present at run-time, but an individual handler may require the file to be present.