プログラムの作成 (CRTPGM) コマンドは、前に作成した 1 つ以上のモジュール、 および必要な場合には 1 つ以上のサービス・プログラムから プログラム・オブジェクトを 作成します。ILE モジュール作成コマンド、CRTRPGMOD、CRTCMOD、 CRTCBLMOD、または CRTCLMOD のいずれかによって作成したモジュールを バインドすることができます。
CRTPGM コマンドを使ってプログラム・オブジェクトを作成する前に、以下のこ とを実行しなければなりません。
どのモジュールにプログラム入力プロシージャーが入っているかを、CRTPGM の ENTMOD パラメーターによって指示します。デフォルト値は ENTMOD(*FIRST) であり、MODULE パラメーターのリストで見つかった最初のプログラム入力プロシージャーを含むモジュールが入り口モジュールであることを意味しています。
メイン・プロシージャーのモジュールが 1 つだけあるとします。すなわち、 1 つを除いてすべてのモジュールに NOMAIN が指定されていると仮定し、 ユーザーはデフォルト値 (*FIRST) を受け入れることができるとします。 二者択一的にユーザーは (*ONLY) を指定することができます。 この場合には、実際に 1 つだけのモジュールがメイン・プロシージャーを持っていることがチェックされます。 例えば、次の両方の状況において ENTMOD(*ONLY) を指定することができます。
ユーザーのプログラムに特殊な要件がないか、 あるいは使用するグループが確定していない場合には、 活動化グループ QILE を指定してください。 一般に、アプリケーションをそれ自身の活動化グループで実行するのが望ましいことです。 したがって、アプリケーション・プログラムの名前を付けた後に活動化グループの名前を付けることができます。
CRTPGM のデフォルトの活動化グループが *NEW であることに注意してください。 これはプログラムがその自身の活動化グループで実行され、 活動化グループはプログラムが終了する時に終了することを意味します。LR を設定してもしなくても、 プログラムは次に呼び出された時にデータの新しいコピーをもちます。 活動化グループの詳細については、活動化グループの指定を参照してください。
CRTPGM コマンドを使ってプログラム・オブジェクトを作成するには、 次のステップを行ってください。
表 23 は CRTPGM コマンドのパラメーターとそれらのデフォルト値をリストしたものです。CRTPGM コマンド およびそのパラメーターについての全般的な説明は、Web サイト http://www.ibm.com/eserver/iseries/infocenter で iSeries Information Center の中の『プログラミング』カテゴリーの『CL および API』の節を参 照してください。
パラメーター・グループ | パラメーター (デフォルト値) |
---|---|
識別 |
PGM(ライブラリー名/プログラム名) MODULE(*PGM) |
プログラム・アクセス | ENTMOD(*FIRST) |
バインド |
BNDSRVPGM(*NONE) BNDDIR(*NONE) |
実行時 | ACTGRP(*NEW) |
その他 |
OPTION(*GEN *NODUPPROC *NODUPVAR *WARN *RSLVREF) DETAIL(*NONE) ALWUPD(*YES) ALWRINZ(*NO) REPLACE(*YES) AUT(*LIBCRTAUT) TEXT(*ENTMODTXT) TGTRLS(*CURRENT) USRPRF(*USER) |
CRTPGM コマンドを入力すると、システムは以下の処置を行います。
この例では CRTPGM コマンドを使って 2 つの ILE RPG モジュールをプログラム TRPT にバインドする方法を 示します。このプログラムでは、以下のことを行います。
TRANSRPT、TRANSSVC、および TRNSDTA のソース・ステートメントは それぞれ、図 38、図 36、および 図 39 に示されています。
CRTRPGMOD MODULE(MYLIB/TRANSRPT)
CRTRPGMOD MODULE(MYLIB/TRANSSVC)
CRTPGM PGM(MYLIB/TRPT) MODULE(TRANSRPT TRANSSVC) ENTMOD(*FIRST) ACTGRP(TRPT)
CRTPGM コマンドは、ライブラリー MYLIB にプログラム・オブジェクト TRPT を作成します。
TRANSRPT が MODULE パラメーターに最初にリストされることに注意してくださ い。 ENTMOD(*FIRST) では、プログラム入力プロシージャーのある最初のモジュールを検索します。2 つのモジュールのうちプログラム入力プロシージャーを持っているのは 1 つだけですから、2 つのモジュールをいずれを先に入力しても構いません。
プログラム TRPT は指定の活動化グループ TRPT 内で実行します。 プログラムは、 他のプログラムがその資源に影響を与えないことを確実にするために指定の グループ内で実行します。
図 41 は、TRPT が実行される時に作成させる出力ファイルを示したものです。
Product name Quantity Income ------------------------------ -------- ------------ Large 245 330,750.00 Super 15 52,500.00 Super Large 0 .00 Super Jumbo 123 2,952,000.00 Incredibly Large Super Jumbo 15 912,000.00 ***Unknown*** 12 .00 Total: 4,247,250.00
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.