Binding Multiple Modules
This example shows you how to use the CRTPGM command to bind two ILE RPG modules
into a program TRPT. In this program, the following occurs:
- The module TRANSRPT reads each transaction record from a file TRNSDTA.
- It then calls procedure Trans_Inc and Proc_Name in module TRANSSVC using bound calls within expressions.
- Trans_Inc calculates the income pertaining to each transaction and returns the value to the caller
- Proc_Name determines the product name and returns it
- TRANSRPT then prints the transaction record.
Source for TRANSRPT, TRANSSVC, and TRNSDTA is shown in Figure 1, Figure 1 and Figure 2 respectively.
- First create the module TRANSRPT. Type:
CRTRPGMOD MODULE(MYLIB⁄TRANSRPT) - Then create module TRANSSVC by typing:
CRTRPGMOD MODULE(MYLIB⁄TRANSSVC) - To create the program object, type:
CRTPGM PGM(MYLIB/TRPT) MODULE(TRANSRPT TRANSSVC) ENTMOD(*FIRST) ACTGRP(TRPT)
The CRTPGM command creates a program object TRPT in the library MYLIB.
Note that TRANSRPT is listed first in the MODULE parameter. ENTMOD(*FIRST) will find the first module with a program entry procedure. Since only one of the two modules has a program entry procedure, they can be entered in either order.
The program TRPT will run in the named activation group TRPT. The program runs in a named group to ensure that no other programs can affect its resources.
Figure 1 shows an output file created when TRPT is run.
Figure 1. File QSYSPRT for TRPT
Product name Quantity Income
------------------------------ -------- ------------
Large 245 330,750.00
Super 15 52,500.00
Super Large 0 .00
Super Jumbo 123 2,952,000.00
Incredibly Large Super Jumbo 15 912,000.00
***Unknown*** 12 .00
Total: 4,247,250.00