サービスプログラムのエクスポート (バインド・プログラム言語)

こちらでサービスプログラムに入っているサブプロシージャーを使用する例を紹介しましたが、その際サービスプログラム内に存在するプロシージャーはすべて使用できるように EXPORT(*ALL) と指定して CRTSRVPGM コマンドでサービスプログラムを作成しています。これはサービスプログラムに存在するすべてのエクスポート可能な記号 (プロシージャー名や変数など) が外部から参照できるようになることを意味します。また、エクスポートされる記号の数、エクスポートされる記号のアルファベット順によってシグニチャーも生成されます。

サービスプログラム化されるモジュールの中でだけ使用するプロシージャーがあったりする場合、すべてのプロシージャーが EXPORT(*ALL) で参照されるのは好ましくないかもしれません。また、新たにプロシージャーを追加した場合にはシグニチャーが変わってしまうので関連するプログラム/サービスプログラムをすべて再作成する必要がでてきます。

EXPORT パラメーターに *SRCFILE と指定すると、SRCFILE パラメーターが有効になります。ここに「バインド・プログラム言語」というもので記述したソースを指定し、さらに SRCMBR を指定 (デフォルトは *SRVPGM なのでそのままで OK) することで、ユーザーがシグニチャーを指定することや、使用したいプロシージャーだけを指定することができるようになります。

この「バインド・プログラム言語」を使用したソースですが、既存のモジュールやサービスプログラムから RTVBNDSRC というコマンドで生成することができます。生成したソースメンバーを編集すればいいわけですね。


RTVBNDSRC コマンドの例です。
QSRVSRC というファイル自体は存在していなくても、このコマンドの実行後に自動的に作成されました。

実行後にはこんなメッセージが表示されます。

生成されたメンバーです。

こんな内容になります。

サービスプログラムに対しての実行例です。

実行後のメッセージです。

生成されたメンバーです。

こちらが内容です。
サービスプログラムなのでシグニチャーが検索されているのが確認できますね。

[Top Pageに戻る]

Ads by TOK2