RPG

91. ILEバインド・ディレクトリーの使用方法

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のライブラリー関数を使用することができる。