IBM AS/400 Frozen Dessert Maker User Manual


 
Binding Modules into a Program
9. Once all the imports have been resolved, the binding process completes and
the program object is created.
Note: If you have specified that a variable or procedure is to be exported (using
the EXPORT keyword), it is possible that the variable or procedure name
will be identical to a variable or procedure in another procedure within the
bound program object. In this case, the results may not be as expected.
See
ILE Concepts
for information on how to handle this situation.
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 38 on
page 79, Figure 36 on page 76 and Figure 39 on page 80 respectively.
1. First create the module TRANSRPT. Type:
CRTRPGMOD MODULE(MYLIB/TRANSRPT)
2. Then create module TRANSSVC by typing:
CRTRPGMOD MODULE(MYLIB/TRANSSVC)
3. 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 41 on page 85 shows an output file created when TRPT is run.
84 ILE RPG for AS/400 Programmer's Guide