PGM の実行時にはライブラリー・リストによってオブジェクトが検索されることは
iSeries400の開発者であれば、よく知っていると思うが、これと同じように
CRTPGM のときに *SRVPGM などのサービス・プログラム(DLL) を検索して
バインドするための 「PATH」が バインド・ディレクトリー である。
プログラムの作成コマンド CRTPGM において
CRTPGM MYPGM BNDSRVPGM(ASNET.COM/RPGENGINE3)
のようにして BNDSRVPGM パラメーターに直接、*SRVPGM を指定しても良いが
バインドする *SRVPGM の数が増えてくると、CRTPGM の都度に
どのサービス・プログラムをバインドすればよいかが毎度、検討することが
面倒である。
このようなときにバインド・ディレクトリーに必要な *SRVPGM を登録しておけば
CRTPGM では、ひとつのバインド・ディレクトリー (*BNDDIR) を指定するだけで
簡単に CRTPGM を実行することができる。
CRTBNRDIR MYLIB/MYDIR AUT(*ALL)
でバインド・ディレクトリー MYDIR を作成して
ADDBNDDIRE MYLIB/MYDIR OBJ(ASNET.COM/RPGENGINE3))
のようにして *SRVPGM を
バインド・ディレクトリーに追加する。
CRTPGM MYPGM BNDDIR(MYLIB/MYDIR)
のようにしてプログラムを作成する。
例えばC/400の ライブラリー関数は QSYS/QC2LE という *SRVPGM に登録されて いるので
このバインド・ディレクトリーを指定してコンパイルすることによって
RPG からでも C/400のライブラリー関数を使用することができる。
|