CRTPGM コマンドの使用
- プログラム名を決める。
- 1 つ以上のモジュールと、必要であれば、プログラム・オブジェクトにバインドしたい サービス・プログラムを識別する。
- 入り口モジュールを識別する。
どのモジュールにプログラム入力プロシージャーが入っているかを、CRTPGM の ENTMOD パラメーターによって指示します。デフォルト値は ENTMOD(*FIRST) であり、MODULE パラメーターのリストで見つかった最初のプログラム入力プロシージャーを含むモジュールが入り口モジュールであることを意味しています。
メイン・プロシージャーのモジュールが 1 つだけあるとします。すなわち、 1 つを除いてすべてのモジュールに NOMAIN が指定されていると仮定し、 ユーザーはデフォルト値 (*FIRST) を受け入れることができるとします。 二者択一的にユーザーは (*ONLY) を指定することができます。 この場合には、実際に 1 つだけのモジュールがメイン・プロシージャーを持っていることがチェックされます。 例えば、次の両方の状況において ENTMOD(*ONLY) を指定することができます。- main() 関数のない C モジュールを RPG モジュールにバインドする。
- 2 つの RPG モジュールをバインドするが、1 つは制御仕様書に NOMAIN がある。
注: メイン・プロシージャーに複数の ILE RPG モジュールをバインドしている場合には、プログラムが呼び出された時に制御を受け取りたいモジュールの名前を指定する必要があります。 また、メイン・プロシージャーのモジュールが MODULE パラメーターに指定さ れたリストのメイン・プロシージャーのその他のモジュールに先行する場合に は、*FIRST を指定することができます。 - プログラムを使用する活動化グループを識別する。
ユーザーのプログラムに特殊な要件がないか、 あるいは使用するグループが確定していない場合には、 活動化グループ QILE を指定してください。 一般に、アプリケーションをそれ自身の活動化グループで実行するのが望ましいことです。 したがって、アプリケーション・プログラムの名前を付けた後に活動化グループの名前を付けることができます。
CRTPGM のデフォルトの活動化グループが *NEW であることに注意してください。 これはプログラムがその自身の活動化グループで実行され、 活動化グループはプログラムが終了する時に終了することを意味します。LR を設定してもしなくても、 プログラムは次に呼び出された時にデータの新しいコピーをもちます。 活動化グループの詳細については、活動化グループの指定を参照してください。
- CRTPGM コマンドを入力する。
- コマンド・パラメーターに適切な値を入力する。
表 1 は CRTPGM コマンドのパラメーターとそれらのデフォルト値をリストしたものです。CRTPGM コマンドおよびそのパラメーターについての詳細な説明は、Web サイト http://www.ibm.com/systems/i/infocenter/ で IBM® i Information Center の中の『プログラミング』カテゴリーの『CL および API』の節を参照してください。
| パラメーター・グループ | パラメーター (デフォルト値) |
|---|---|
| 識別 | PGM(ライブラリー名/プログラム名) |
| プログラム・アクセス | ENTMOD(*FIRST) |
| バインド | BNDSRVPGM(*NONE) |
| 実行時 | ACTGRP(*NEW) |
| その他 | OPTION(*GEN *NODUPPROC *NODUPVAR *WARN *RSLVREF) |
- リストされたモジュールをプログラム・オブジェクトになるものにコピー し、サービス・プログラムをこのプログラム・オブジェクトに連係する。
- プログラム入力プロシージャーが入っているモジュールを指定し、 このモジュールの最初のインポートを見つける。
- リストされている順序にモジュールをチェックし、最初のインポートを モジュール・エクスポートと突き合わせる。
- 最初のモジュールに戻り、次のインポートを見つける。
- 最初のモジュール内のすべてのインポートを分析解決する。
- 次のモジュールへ続け、すべてのインポートを分析解決する。
- すべてのインポートの分析解決が終わるまで、後続の各モジュール内のすべて のインポートを分析解決する。
- いずれかのインポートがエクスポートによって解決できない場合は、プログラム・オブジェクトを 作成せずにバインド処理は打ち切られる。
- すべてのインポートが解決されるとバインド処理は完了し、プログラム・オブジェクトが 作成される。