ILE RPG サブプロシージャの使い方 (4) - 複数モジュールの使用 (1) バインド・ディレクトリ -

ILE RPG サブプロシージャの使い方 (3) - サブプロシージャを独立させる -」で、サブプロシージャをモジュールとして独立させるやりかたを見ました。

当然、自由に再利用するために独立させたわけで、そうしたモジュールもそれを利用するプログラムも増えていくことが予想されるわけです。

複数モジュールの使用

複数モジュールがある場合、前回のケースでは 2つだけですが、通常はもっとたくさんの共有モジュールがあってもおかしくありません。

毎回 CRTPGM の MODULE パラメータに全部記述する、というのでももちろんよいのですが、いかにも間違いやすそうですし、何より常に"仕組み化"を目指すプログラマの世界からすると"美しく"はありませんよねぇ…!?

ということで今回と次回で、2つほど複数モジュールをまとめて扱うやり方を紹介します。
バインド・ディレクトリとサービス・プログラムです。


バインド・ディレクトリ

要するに使うモジュールをすべて毎回記述しなければならないというのが面倒なんですね。
それには、使用するモジュールの名前の"リスト"を使いまわすことができるだけでも、それで目的は達成できるわけです。

「バインド・ディレクトリ」というオブジェクトがそのためにあります。

オブジェクトなのですが、モジュールの名前のリストだけを持っています。モジュールそのものの実体は含まれません。
C で言えば、マクロでしょうか。makefile での指定のようなものでもありますね。

作成

CRTBNDDIR コマンドでバインド・ディレクトリというタイプのオブジェクトを作成し、使用対象になるモジュールの名前を追加する、という手順になっています。

モジュール名のリストへの追加には、WRKBNDDIRE コマンドからのメニューを使います。

WRKBNDDIRE コマンドの実行に続く画面で、オプション 9 を選択すると項目の処理ができるようになっています。

オプション 9 で出てきた画面で、追加したいモジュール名をオプション 1 を指定して、バインドディレクトリオブジェクトへの追加を行います。

追加したい分だけモジュールの追加処理を行います。

結果、こんなかんじですね。

ADDBNDDIRE コマンドを使用して、同じことがコマンドとして/CL プログラム内でも実行可能です。

使用法

CRTPGM コマンドに「ディレクトリーのバインド」パラメータがありますので、そこに指定します。
今回のケースで言えば、FACTORIAL と PERM というモジュールが MODULE パラメータに指定されたのと同じことになりますね。実質前回と同じコマンドになるわけです。

[Top Pageに戻る]

Ads by TOK2