Strategy 3: ILE Application Using CRTRPGMOD - IBM - RPG

This strategy allows you to fully utilize the concepts offered by ILE. However, while being the most flexible approach, it is also more involved. This section presents three scenarios for creating:

  • A single-language application
  • A mixed-language application
  • An advanced application

The effect of ILE is the same as described in “Effect of ILE”. You may want to read about the basic ILE concepts in ILE Concepts before using this approach.

Method

Because this approach is the most flexible, it includes a number of ways in which you might create an ILE application. The following list describes the main steps that you may need to perform:

  1. Create a module from each source member using the appropriate command, for example, CRTRPGMOD for RPG source, CRTCLMOD for CL source, etc..
  2. Determine the ILE characteristics for the application, for example:
    • Determine which module will contain the procedure that will be the starting point for the application. The module you choose as the entry module is the first one that you want to get control. In an OPM application, this would be the command processing program, or the program called because a menu item was selected.
    • Determine the activation group the application will run in. (Most likely you will want to run in a named activation group, where the name is based on the name of the application.)
    • Determine the exports and imports to be used.
  3. Determine if any of the modules will be bound together to create a service program. If so, create the service programs using CRTSRVPGM.
  4. Identify the names of the binding directories, if any, to be used. It is assumed with this approach that if you are using a binding directory, it is one that is already created for you. For example, there may be a third-party service program that you may want to bind to your source. Consequently, all you need to know is the name of the binding directory.
  5. Bind the appropriate modules and service programs together using CRTPGM, specifying values for the parameters based on the characteristics determined.An application created using this approach can run fully protected, that is, within its own activation group. Furthermore, it can be updated easily through use of the UPDPGM or UPDSRVPGM commands. With these commands you can add or replace one or more modules without having to re-create the program object.

Single-Language ILE Application Scenario

In this scenario you compile multiple source files into modules and bind them into one program that is called by an ILE RPG program. This shows the run-time view of this application.

Single-Language Application Using CRTRPGMOD and CRTPGM
Single-Language Application Using CRTRPGMOD and CRTPGM

The call from program X to program Y is a dynamic call. The calls among the modules in program Y are static calls. See “Effect of ILE” for details on the effects of ILE on the way your application handles calls, data, files and errors.

Mixed-Language ILE Application Scenario

In this scenario, you create integrated mixed-language applications. The main module, written in one ILE language, calls procedures written in another ILE language. The main module opens files that the other modules then share. Because of the use of different languages, you may not expect consistent behavior. However, ILE ensures that this occurs.

This shows the run-time view of an application containing a mixed-language ILE program where one module calls a non-bindable API, QUSCRTUS (Create User Space).

Mixed-Language Application
Mixed-Language Application

The call from program Y to the OPM API is a dynamic call. The calls among the modules in program Y are static calls. See “Effect of ILE” for details on the effects of ILE on the way your application handles calls, data, files and errors.

Advanced Application Scenario
In this scenario, you take full advantage of ILE function, including service programs. The use of bound calls, used for procedures within modules and service programs, provide improved performance especially if the service program runs in the same activation group as the caller.

This shows an example in which an ILE program is bound to two service programs.

Advanced Application
Advanced Application

The calls from program X to service programs Y and Z are static calls. See “Effect of ILE” for details on the effects of ILE on the way your application handles calls, data, files and errors.


All rights reserved © 2018 Wisdom IT Services India Pvt. Ltd DMCA.com Protection Status

IBM - RPG Topics