Module是ILE程序的基本组成部分。一个ILE程序可以由一个或多个Module组成,Module本身不能被调用,Module的生成是根据不同的源码类型用CRTXXXMOD命令或者15,‘XXX’指不同的类型,如想生成RPGLE类型的Module时,用CRTRPGMOD命令。当生成程序时,你必须指定程序名和组成程序的Module名。使用时用CALLB调用组成程序的Module。其特点是在编译时,将程序所需资源集合在一起,为静态调用,所以速度比较快。缺点是占用空间大。目标类型为*MODULE。
Service Program(SRVPGM)是由一组Procedure或Module组成的公用程序。目标类型是*SRVPGM。
Bind Directory(BNDDIR)是指*Module或*SRVPGM所在路径。编译时指定BNDDIR参数,系统可自动找到生成程序所用的Module。目标类型为*BNDDIR。
程序生成后,*MODULE和*BNDDIR都可以删除。
1. 建立BNDDIR
CRTBNDDIR BNDDIR(PGQL/HLIBBND)
2. 添加MODULE到BNDDIR中
ADDBNDDIRE BNDDIR(PGQL/HLIBBND) OBJ(PGQL/MYPGM *MODULE)
或使用1添加MODULE或SRVPGM
ILE程序的生成过程:
CRTRPGMOD MODULE(MYLIB/MYPGM) SRCFILE(MYLIB/QRPGLESRC)
CRTPGM PGM(MYLIB/MYPGM) +
MODULE(MYLIB/MYPGM) +
BNDSRVPGM(MYLIB/MYPGM) +
BNDDIR(MYLIB/MYBNDDIR) +
ACTGRP(*CALLER)
删除MOD:
DLTMOD MODULE(MYLIB/MYPGM)
l 生成SRVPGM的过程
CRTSRVPGM SRVPGM(MYLIB/MYSRVPGM)+
MODULE(MYLIB/MYPGM) +
EXPORT(*ALL) +
BNDDIR(MYLIB/MYBNDDIR) +
ACTGRP(*CALLER)
Service program . . . . . . . . > HSDARPSRV Name
Library . . . . . . . . . . . > PGQL Name, *CURLIB
Module . . . . . . . . . . . . . > HSDARP Name, generic*, *SRVPGM, *ALL
Library . . . . . . . . . . . > PGQL Name, *LIBL, *CURLIB...
+ for more values
*LIBL
Export . . . . . . . . . . . . . > *ALL *SRCFILE, *ALL
Export source file . . . . . . . > PSRC Name, QSRVSRC
Library . . . . . . . . . . . > PGQL Name, *LIBL, *CURLIB
Export source member . . . . . . *SRVPGM Name, *SRVPGM
Text 'description' . . . . . . . *BLANK