RPG モジュール作成 (CRTRPGMOD) コマンドを使用してモジュールを作成します。 コマンドは、対話式に使用することも、バッチ入力ストリームの一部 として使用することも、あるいはコマンド言語 (CL) プログラムから 使用することもできます。
コマンドを対話式に使用していて、プロンプトが必要な場合には、CRTRPGMOD を 入力して、F4 (プロンプト) を押してください。 ヘルプが必要な場合には、CRTRPGMOD を入力して、F1 (ヘルプ) を押 してください。
表 22 は CRTRPGMOD コマンドの パラメーター、およびシステム提供のそれらのデフォルトの値です。コマンドの構文図および パラメーターの説明は 付録C. 作成コマンドに入って います。
モ ジュールの指定 | |
MODULE(*CURLIB/*CTLSPEC) | 作成されるモジュールの名前およびライブラリーを決める。 |
SRCFILE(*LIBL/QRPGLESRC) | 指定する場合は、ソース・ファイルおよびライブラリーを示す。 |
SRCMBR(*MODULE) | 指定する場合は、ソースの仕様が入っているファイル・メンバーを示す。 |
SRCSTMF(path) | 指定する場合は、IFS のソース・ファイルへのパスを示す。 |
INCDIR('path to directory 1:path to directory 2') | /copy ファイルおよび /include ファイルを検索するモジュールのリストを示す。 |
TEXT(*SRCMBRTXT) | モジュールの簡単な説明を用意する。 |
モ ジュールの作成 | |
GENLVL(10) | モジュール作成をエラーの重大度 (0 〜 20) に条件付ける。 |
OPTION(*DEBUGIO) | *DEBUGIO/*NODEBUGIO は、入出力仕様書について停止点を生成するかどうか を決定する。 |
OPTION(*GEN) | *GEN/*NOGEN は、モジュールを作成するかどうかを決める。 |
OPTION(*NOSRCSTMT) | コンパイラーがデバッグ用にステートメント番号を生成する方法を指定する。 |
DBGVIEW(*STMT) | モジュールに含めるデバッグ・ビューがあれば、そのタイプを指定する。 |
OPTIMIZE(*NONE) | 最適化をする場合、そのレベルを決める。 |
REPLACE(*YES) | 既存のモジュールをモジュールに置き換えるかどうかを決める。 |
AUT(*LIBCRTAUT) | 作成されるモジュールの権限のタイプを指定する。 |
TGTRLS(*CURRENT) | オブジェクトを実行するリリース・レベルを 指定する。 |
BNDDIR(*NONE) | 記号の解決に使用するバインディング・ディレクトリーを指定する。 |
ENBPFRCOL(*PEP) | パフォーマンス収集を使用可能にするかどうかを 指定する。 |
DEFINE(*NONE) | コンパイルの開始前に定義する 条件名を指定する。 |
PRFDTA(*NOCOL) | プログラムのプロファイル作成データ属性を指定する。 |
コンパイラー・リストの作成 | |
OUTPUT(*PRINT) | コンパイラー・リストを作成するかどうかを決める。 |
INDENT(*NONE) | リスト出力中に字下げを示すかどうかを決め、また字下げの印付けの ための文字を識別する |
OPTION(*XREF *NOSECLVL *SHOWCPY *EXPDDS *EXT *NOSHOWSKP *NOSRCSTMT) | コンパイラー・リストの内容を指定する。 |
データ変換オプション | |
CVTOPT(*NONE) | 外部記述ファイルからの各種のデータ・タイプを 取り扱う方法を指定する。 |
ALWNULL(*NO) | ヌル可能フィールドからの値をモジュールが受け入れるかどうかを 決める。 |
FIXNBR(*NONE) | 無効な 10 進数データのどれをコンパイラーで修正するかを決める。 |
実行時の考慮事項 | |
SRTSEQ(*HEX) | 使用すべき分類順序テーブルを指定する。 |
OPTION(*DEBUGIO) | *DEBUGIO/*NODEBUGIO は、入出力仕様書について停止点を生成するかどうか を決定する。 |
LANGID(*JOBRUN) | 分類順序の言語識別コードを指定するために SRTSEQ と一緒に 使用される。 |
INFOSTMF(path) | PGMINFO と一緒に使用し、PCML を受け取る IFS のストリーム・ファイルを指定する。 |
PGMINFO(*NONE) | *PCML は、モジュールに対し PCML (プログラム呼び出しマークアップ言語) を生成することを示す。 |
TRUNCNBR(*YES) | パック 10 進数、ゾーン 10 進数、および固定形式の 2 進数フィールド命令の数値オーバーフローが起こった時に取るべき処置を指定する。 |
LICOPT(オプション) | ライセンス内部コード・オプションを指定します。 |
要求した場合には、CRTRPGMOD コマンドは、CRTBNDRPG コマンドで 作成したリストとほとんどの部分が同様のコンパイラー・リストを 作成します (CRTRPGMOD で作成されたリストに、 バインド・セクションが入ることはありません)。
コンパイラー・リストの使用については、コンパイラー・リストの使用を参照してくだ さい。サンプル・コンパイラー・リストは 付録D. コンパイラー・リストに入っています。
この例では、CRTRPGMOD コマンドおよびそのデフォルトの設定を使用して NOMAIN モジュール・ オブジェクト TRANSSVC を作成します。TRANSSVC には、他のモジュールのプロシージャーの トランザクション・サービスを実行するプロトタイプ・プロシージャーが入っています。 TRANSSVC のソースは 図 36 に示されています。 TRANSSVC におけるプロシージャーのプロトタイプは、図 37 に示すように /COPY メンバーに保管されます。
CRTRPGMOD MODULE(MYLIB/TRANSSVC) SRCFILE(MYLIB/QRPGLESRC)
モジュールは、コマンドに指定された名前、TRANSSVC でライブラリー MYLIB に作成されます。 モジュールのソースは、ライブラリー MYLIB の ファイル QRPGLESRC のソース・メンバー TRANSSVC です。
次のコマンドの 1 つを使用して NOMAIN の入ったモジュールを別のモジュールと バインドします。
*=================================================================* * モジュール名: TRANSSVC (トランザクション・サービス) * 関連ファイル: なし * 関連ソース: TRANSRPT * エクスポート・プロシージャー: Trans_Inc * -- パラメーター・リストにあるフィールドのデータを使用して * 取引の収入を計算します。すべての計算が行なわれた後にそれを * 呼び出し元に戻します。 * * Prod_Name -- 製品番号が入っている入力パラメーターに基づいて * 製品名を検索します。 *=================================================================* * このモジュールはサブプロシージャーのみを含んでいます。 * つまりこれは NOMAIN モジュールです。 H NOMAIN *------------------------------------------------------------------ * /COPY メンバーからプロトタイプを取り込みます。 *------------------------------------------------------------------ /COPY TRANSP
*------------------------------------------------------------------ * サブプロシージャー Trans_Inc *------------------------------------------------------------------ P Trans_Inc B EXPORT D Trans_Inc PI 11P 2 D ProdNum 10P 0 VALUE D Quantity 5P 0 VALUE D Discount 2P 2 VALUE D Factor S 5P 0 * C SELECT C WHEN ProdNum = 1 C EVAL Factor = 1500 C WHEN ProdNum = 2 C EVAL Factor = 3500 C WHEN ProdNum = 5 C EVAL Factor = 20000 C WHEN ProdNum = 8 C EVAL Factor = 32000 C WHEN ProdNum = 12 C EVAL Factor = 64000 C OTHER C EVAL Factor = 0 C ENDSL C RETURN Factor * Quantity * (1 - Discount) P Trans_Inc E
*------------------------------------------------------------------ * サブプロシージャー Prod_Name *------------------------------------------------------------------ P Prod_Name B EXPORT D Prod_Name PI 40A D ProdNum 10P 0 VALUE * C SELECT C WHEN ProdNum = 1 C RETURN 'Large' C WHEN ProdNum = 2 C RETURN 'Super' C WHEN ProdNum = 5 C RETURN 'Super Large' C WHEN ProdNum = 8 C RETURN 'Super Jumbo' C WHEN ProdNum = 12 C RETURN 'Incredibly Large Super Jumbo' C OTHER C RETURN '***Unknown***' C ENDSL P Prod_Name E
* Trans_Inc のプロトタイプ D Trans_Inc PR 11P 2 D Prod 10P 0 VALUE D Quantity 5P 0 VALUE D Discount 2P 2 VALUE * Prod_Name のプロトタイプ D Prod_Name PR 40A D Prod 10P 0 VALUE
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.