RPG/400プログラムの作成 (CRTRPGPGM)

RPG/400コンパイラーを開始するためには,RPGプログラム作成(CRTRPGPGM)コマンドが使用されます。

パラメーター

キーワード 記述 選択項目 ノーツ
PGM プログラム 修飾オブジェクト名 オプショナル, 定位置 1
修飾子 1: プログラム 名前, *CTLSPEC
修飾子 2: ライブラリー 名前, *CURLIB
SRCFILE ソース・ファイル 修飾オブジェクト名 オプショナル, 定位置 2
修飾子 1: ソース・ファイル 名前, QRPGSRC
修飾子 2: ライブラリー 名前, *LIBL, *CURLIB
SRCMBR ソース・メンバー 名前, *PGM オプショナル, 定位置 3
GENLVL 生成重大度レベル 0-99, 9 オプショナル
TEXT テキスト'記述' 文字値, *SRCMBRTXT, *BLANK オプショナル
OPTION ソース・リスト・オプション 値 (最大 14 回の繰り返し): *SOURCE, *NOSOURCE, *SRC, *NOSRC, *XREF, *NOXREF, *GEN, *NOGEN, *DUMP, *NODUMP, *SECLVL, *NOSECLVL, *SRCDBG, *NOSRCDBG, *LSTDBG, *NOLSTDBG オプショナル
GENOPT 生成オプション 値 (最大 10 回の繰り返し): *LIST, *NOLIST, *XREF, *NOXREF, *ATR, *NOATR, *DUMP, *NODUMP, *PATCH, *NOPATCH, *OPTIMIZE, *NOOPTIMIZE オプショナル
INDENT ソース・リストの字下げ 文字値, *NONE オプショナル
CVTOPT タイプ変換オプション 単一値: *NONE
その他の値 (最大 3 回の繰り返し): *DATETIME, *VARCHAR, *GRAPHIC
オプショナル
SRTSEQ ソート順序 単一値: *HEX, *JOB, *JOBRUN, *LANGIDUNQ, *LANGIDSHR
その他の値: 修飾オブジェクト名
オプショナル
修飾子 1: ソート順序 名前
修飾子 2: ライブラリー 名前, *LIBL, *CURLIB
LANGID 言語ID 名前, *JOBRUN, *JOB オプショナル
SAAFLAG SAAフラグ付け *NOFLAG, *FLAG オプショナル
PRTFILE 印刷ファイル 修飾オブジェクト名 オプショナル
修飾子 1: 印刷ファイル 名前, QSYSPRT
修飾子 2: ライブラリー 名前, *LIBL, *CURLIB
REPLACE プログラムの置き換え *YES, *NO オプショナル
TGTRLS ターゲット・リリース 単純名, *CURRENT, *PRV オプショナル
USRPRF ユーザー・プロファイル *USER, *OWNER オプショナル
AUT 権限 名前, *LIBCRTAUT, *ALL, *CHANGE, *USE, *EXCLUDE オプショナル
PHSTRC フェーズ・トレース *NO, *YES オプショナル
ITDUMP 中間テキスト・ダンプ 文字値, *NONE オプショナル
SNPDUMP スナップ・ダンプ 文字値, *NONE オプショナル
CODELIST コード・リスト 文字値, *NONE, *ALL オプショナル
IGNDECERR 10進データ・エラーの無視 *NO, *YES オプショナル
ALWNULL ヌル値使用可能 *NO, *YES オプショナル

プログラム (PGM)

コンパイル済みRPGプログラムのプログラム名およびライブラリーを指定します。

*CTLSPEC
制御仕様の75-80桁目で指示されたプログラム名。
プログラム名
プログラムを識別する名前を入力してください。
*CURLIB
現行ライブラリーが使用されます。 現行ライブラリーを指定していない場合には,QGPLが使用されます。
ライブラリー名
コンパイル済みプログラムを保管するライブラリーの名前を入力してください。

ソース・ファイル (SRCFILE)

ソース・プログラムが入っているソース・ファイルの名前を指定します。

QRPGSRC
省略時のソース・ファイルQRPGSRCには,コンパイルされるRPGプログラムが入っています。
ソース・ファイル名
コンパイルされるRPGソース・プログラムが入っているソース・ファイル名を入力します。
*LIBL
システムはライブラリー・リストを検索して,ソース・ファイルが入っているライブラリーを見つけます。
*CURLIB
現行ライブラリーが使用されます。 現行ライブラリーを指定していない場合には,QGPLが使用されます。
ライブラリー名
ソース・ファイルが入っているライブラリーの名前を入力してください。

ソース・メンバー (SRCMBR)

ソース・ファイルのメンバーの名前を指定します。

*PGM
ソース・ファイル・メンバー名としてPGMパラメーターで指定した名前。
ソース・ファイル・メンバー名
ソース・プログラムが入っているメンバーの名前を入力してください。

生成重大度レベル (GENLVL)

プログラム・オブジェクトの作成を停止する診断メッセージの重大度レベルを指定します。

省略時の重大度レベルは9です。
重大度レベル値
01-50の2桁の数字を入力してください。

テキスト'記述' (TEXT)

プログラム機能の説明に使用するテキストを指定します。

*SRCMBRTXT
ソース・ファイル・メンバーのテキスト記述を使用します。
*BLANK
テキストはありません。

ソース・リスト・オプション (OPTION)

ソース・プログラムをコンパイルする時に使用するオプションを指定します。

*SOURCEまたは*SRC
コンパイラーがソース・リストを提供します。
*NOSOURCEまたは*NOSRC
コンパイラーはソース・リストを提供しません。
*XREF
コンパイラーが相互参照表を提供します。
*NOXREF
コンパイラーは相互参照表を提供しません。
*GEN
プログラムのコンパイル後に実行可能なプログラム・オブジェクトが作成されます。
*NOGEN
プログラム・オブジェクトは作成されません。
*NODUMP
エラーが起こった時にプログラム・テンプレートを印刷しません。
*DUMP
エラーが起こった時にプログラム・テンプレートを印刷します。
*NOSECLVL
メッセージ・テキストは印刷されません。
*SECLVL
メッセージ・テキストが印刷されます。
*NOSRCDBG
ソース・レベルのデバッグ情報は作成されません。ソース・レベルのエラー情報は,*LSTDBGを指定しない限り作成されません。
*SRCDBG
コンパイラーは,クライアント・ツールで使用するためのソース・レベルのエラー情報およびソース・レベルのデバッグ情報を作成します。また,システム・デバッガー(STRDBG OPMSRC(*YES))を使用してOPMプログラムとILEプログラムを同時にデバッグしたい場合には,ソース・レベルまたはリスト・レベルのデバッグ情報が必要です。

*SRCDBGと*LSTDBGを一緒に指定することはできません。 どちらか一方を指定してください。

*NOLSTDBG
リスト・ビューまたはリスト・レベルのデバッグ情報は作成されません。ソース・レベルのエラー情報は,*SRCDBGを指定しない限り作成されません。
*LSTDBG
コンパイラーは,クライアント・ツールで使用するためのリスト・ビュー,ソース・レベルのエラー情報,およびリスト・レベルのデバッグ情報を作成します。また,システム・デバッガー(STRDBG OPMSRC(*YES))を使用してOPMプログラムとILEプログラムを同時にデバッグしたい場合には,ソース・レベルまたはリスト・レベルのデバッグ情報が必要です。

*SRCDBGと*LSTDBGを一緒に指定することはできません。 どちらか一方を指定してください。

生成オプション (GENOPT)

オブジェクト・コードの作成に使用するオプションを指定してください。

*NOLIST
プログラムの中間表現(IRP)リストを作成しません。
*LIST
プログラムの中間表現(IRP)をリストします。
*NOXREF
プログラムの中間表現(IRP)の相互参照リストを作成しません。
*XREF
プログラムの中間表現(IRP)に定義されたすべてのオブジェクトの相互参照リストを作成します。
*NOATR
属性リストを作成しません。
*ATR
プログラムの中間表現(IRP)ソース・プログラムの属性をリストします。
*NODUMP
エラーが起こった時にプログラム・テンプレートを印刷しません。
*DUMP
プログラム・テンプレートを印刷します。
*NOPATCH
コンパイル済みプログラムにプログラム・パッチ域を予約しません。
*PATCH
コンパイル済みプログラムにプログラム・パッチ域のスペースを予約します。
*NOOPTIMIZE
コンパイラーはプログラムの最適化を実行しません。
*OPTIMIZE
コンパイラーは処理効率の高いプログラムを作成します。

ソース・リストの字下げ (INDENT)

DOステートメントおよびIF-ELSE文節は,読みやすいように字下げを指定します。また,対応するDO-ENDDOの対とIF-ELSEの対の結合に使用される文字も指定します。

*NONE
DOステートメントまたはIF-ELSE文節の中では,リストは字下げされません。
文字ストリング
対応するネスト・レベルを結合するためには所定の文字ストリングを使用します。

タイプ変換オプション (CVTOPT)

日付,時刻,およびタイム・スタンプ・データベースのデータ・タイプ,および外部記述ファイルから検索される可変長データ・タイプをRPG/400コンパイラーで処理する方法を指定します。

*NONE
日付,時刻,タイム・スタンプ,および可変長データベースのデータ・タイプは無視されて,RPG/400プログラムでアクセスすることはできません。
*DATETIME
日付,時刻,タイム・スタンプのデータベースのデータ・タイプは固定長文字フィールドとして宣言されて,RPG/400プログラムでアクセスすることができます。
*VARCHAR
可変長データベースのデータ・タイプは固定長文字フィールドとして宣言されて,RPG/400プログラムでアクセスすることができます。
*GRAPHIC
DBCSグラフィック・データ・タイプは固定長の文字フィールドとして宣言され,RPG/400プログラムでアクセス可能です。

注: プログラム中で可変長DBCSグラフィック・データ・タイプを宣言する必要がある場合には,*VARCHARおよび*GRAPHICの両方のパラメーターを選択してください。

ソート順序 (SRTSEQ)

使用するソート順序テーブルを指定します。

注: CRTRPGPGMまたはCRTRPTPGMコマンドのSRTSEQおよびLANGIDパラメーターにコーディングされた値を使用するためには,制御仕様の代替照合順序フィールドにDを指定しなければなりません。代替照合順序はコンパイル時または実行時のいずれかにシステムから検索されます。Dオプションを指定すると,代替照合順序は以下に影響を与えます。すなわち,すべての文字比較操作,文字テーブルおよび配列のLOKUPおよびSORTA,および文字のコンパイル時データおよび実行時前配列とテーブルの順序検査に影響を与えます。実行時に代替照合順序が検索される場合には,コンパイル時データの順序検査は実行時まで延期されます。

*HEX
ソート順序を決定するために,文字の16進数値を使用します。これが省略時の値です。
*JOB
RPGプログラムの作成時に,ジョブに対応したSRTSEQ値を使用します。
*JOBRUN
RPGプログラムの実行時に,ジョブに対応したSRTSEQ値を使用します。
*LANGIDUNQ
固有の重みづけテーブルを使用します。この特殊値は,ソート順序テーブルの選択で,LANGIDパラメーターと一緒に使用されます。
*LANGIDSHR
共用の重みづけテーブルを使用します。この特殊値は,ソート順序テーブルの選択で,LANGIDパラメーターと一緒に使用されます。
ソート順序テーブル名
ソート順序テーブルの名前を入力してください。
*LIBL
コンパイラーは,ライブラリー・リストを検索してソート順序テーブルが入っているライブラリーを見つけます。 これが省略時の値です。
*CURLIB
ソート順序テーブルを見つけるために,現行ライブラリーが検索されます。現行ライブラリーが指定されていない場合には,QGPLが使用されます。
ライブラリー名
ソート順序テーブルが入っているライブラリーの名前を入力してください。

言語ID (LANGID)

ソート順序が*LANGIDUNQまたは*LANGIDSHRの時に使用する言語IDを指定します。LANGIDパラメーターは,ソート順序テーブルの選択で,SRTSEQパラメーターと一緒に使用されます。

*JOBRUN
RPGプログラムの実行時に,ジョブに対応したLANGID値を使用します。 これが省略時の値です。
*JOB
RPGプログラムの作成時に,ジョブに対応したLANGID値を使用します。
言語ID
使用する言語ID(たとえば,フランス語の場合にはFRA,ドイツ語の場合にはDEU)を入力してください。

SAAフラグ付け (SAAFLAG)

SAA RPGによってサポートされない仕様のフラグ付けを行うかどうかを指定します。

*NOFLAG
フラグ付けは実行されません。
*FLAG
フラグ付けが実行されます。

印刷ファイル (PRTFILE)

コンパイル・リストを入れるファイルの名前およびファイルが入っているライブラリーを指定します。

QSYSPRT
コンパイル・リストがQSYSPRTファイルに入れられます。
ファイル名
コンパイル・リストを入れるファイルの名前を入力してください。
*LIBL
システムはライブラリー・リストを検索して,ライブラリーを見つけます。
*CURLIB
現行ライブラリーが使用されます。 現行ライブラリーを指定していない場合には,QGPLが使用されます。
ライブラリー名
ファイルが入っているライブラリーの名前を入力してください。

プログラムの置き換え (REPLACE)

同じライブラリーに同じ名前の既存のプログラム・オブジェクトがある時に,新しいプログラム・オブジェクトを作成するかどうかを指定します。

*YES
新しいプログラム・オブジェクトが作成され,指定したライブラリーにある同じ名前の既存のプログラム・オブジェクトはライブラリーQRPLOBJに移動されます。
*NO
同じ名前のプログラム・オブジェクトが指定したライブラリーにすでに存在している場合には,新しいプログラム・オブジェクトは作成されません。

ターゲット・リリース (TGTRLS)

作成されるオブジェクトが使用されるオペレーティング・システムのリリースを指定します。*CURRENTおよび*PRV値の例の場合で, ターゲット・リリース を指定する時には,VXRXMXの形式を使用してリリースを指定します。ここで,VXはバージョン,RXはリリース,MXはモディフィケーション・レベルです。たとえば,V2R3M0は,バージョン2,リリース3,モディフィケーション・レベル0です。

このパラメーターに対する有効な値はリリースごとに変わります。

考えられる値は次の通りです。

*CURRENT
オブジェクトは,現在ユーザーのシステムで実行中のオペレーティング・システムのリリースで使用されます。たとえば,V2R3M5がシステムで実行されている場合には,*CURRENTは,ユーザーはV2R3M5が導入されているシステムでオブジェクトを使用することを意味します。 また,オペレーティング・システムの後続のリリースが導入されたシステム上でこのオブジェクトを使用することもできます。
*PRV
オブジェクトは,前のリリースのモディフィケーション・レベル0のオペレーティング・システムで使用されます。たとえば,V2R3M5がシステムで実行されている場合には,*PRVはV2R2M0が導入されているシステムでオブジェクトを使用することを意味します。 また,オペレーティング・システムの後続のリリースが導入されたシステムで,このオブジェクトを使用することもできます。
ターゲット・リリース
リリースをVXRXMXの形式で指定してください。 オブジェクトは,指定されたリリースのシステムまたはオペレーティング・システムの後続のリリースが導入されているシステムで使用することができます。

有効な値は,現行のバージョン,リリース,およびモディフィケーション・レベルによって異なり,新しいリリースごとに変わります。このコマンドでサポートされている最も古いリリースよりも前のリリース・レベルを指定した場合には,エラー・メッセージが出されて,サポートされる最も古いリリースを表示します。

注: プログラムは,作成コマンドに指定したリリースより前のリリース・レベルで復元することができます。 プログラムを実行することができる最も古いリリースを判別するためには,DSPPGMを使用してください。

ユーザー・プロファイル (USRPRF)

コンパイル済みRPGプログラムを実行するユーザー・プロファイルを指定します。

*USER
プログラムはプログラム・ユーザーのユーザー・プロファイルのもとで実行されます。
*OWNER
プログラムは,プログラムの所有者とユーザーの両方のユーザー・プロファイルで実行されます。プログラムがすでに存在している場合には,USRPRFパラメーターは更新されません。

権限 (AUT)

このプログラムのために認可する権限を指定します。

*LIBCRTAUT
作成されるオブジェクトの省略時の共通権限は,ターゲット・ライブラリーと関連のあるCRTAUTキーワードからとられます。 この値は作成時に決定されます。 ライブラリーのCRTAUTキーワードの値が作成後に変更された場合には,その新しい値は既存のオブジェクトに影響しません。
*ALL
オブジェクト所有権の転送の場合を除き,プログラムの権限を完了します。
*CHANGE
オブジェクトの存在および管理を取り扱う操作以外のすべての操作が認められます。
*USE
デバッグまたは変更権限を除く,コンパイル済みプログラムの読み取りまたは実行権限。

注: プログラムの変数の定様式ダンプを取得するには,プログラムに対して*USE権限を持っていなければなりません。変数をダンプするには,さらにプログラムが検討可能な情報も持っていなければなりません。

一部のユーザーが変数のダンプができることを望まない場合は,ユーザーに*OBJOPRだけに加えてプログラムに*EXECUTE権限を与えてください。これはユーザーにプログラムの呼び出しは許可しますが,その変数をダンプすることは許可しません。

すべてのユーザーに変数のダンプができることを望まない場合は,プログラムの変更(CHGPGM)を使用して,プログラムの検討可能な情報を除去してください。

*EXCLUDE
権限なし。
権限リスト名
オブジェクトを保護する権限リストの名前。共通権限は*AUTLになります。

フェーズ・トレース (PHSTRC)

コンパイラーについてのフェーズのトレース情報をリストに含めるかどうかを指定します。

*NO
コンパイラー・フェーズの情報を作成しません。
*YES
コンパイラー・フェーズの情報を作成します。

中間テキスト・ダンプ (ITDUMP)

中間テキストの動的リストの作成を指定します。

*NONE
中間テキスト・ダンプを作成しません。
フェーズ名
各フェーズ名の最後の2桁を入力してください。

スナップ・ダンプ (SNPDUMP)

主要データ域および中間テキストのリストを作成するかどうかを指定します。

*NONE
スナップ・ダンプを作成しません。
フェーズ名
各フェーズ名の最後の2桁を入力してください。

コード・リスト (CODELIST)

特定のフェーズに対してIRPの動的リストを作成するかどうかを指定します。

*NONE
中間IRPダンプを作成しません。
*ALL
中間IRPダンプを作成します。
フェーズ名
各フェーズ名の最後の2桁を入力してください。

10進データ・エラーの無視 (IGNDECERR)

10進数データ・エラーを無視するかどうかを指定します。

*NO
10進数データ・エラーは無視されません。
*YES
10進数データ・エラーは無視されます。

ヌル値使用可能 (ALWNULL)

RPG/400プログラムが外部記述入力ファイルのヌル可能フィールドからヌル値を受け入れるかどうかを指定します。

*NO
RPG/400プログラムがヌル値フィールドを受け入れないことを指定します。
*YES
RPG/400プログラムが外部記述入力ファイルのヌル値フィールドを受け入れることを指定します。

1: ソース・プログラムをプログラム・オブジェクトにコンパイル

CRTRPGPGM   PGM(MYLIB/XMPLE1)
            SRCFILE(MYLIB/QRPGSRC)  SRCMBR(XMPLE1)
            OPTION(*SOURCE)  TEXT('MY RPG III PROGRAM')

このコマンドはRPG/400コンパイラーを呼び出して,XMPLE1という名前のプログラムを作成します。ソース・プログラムはライブラリーMYLIB中のソース・ファイルQRPGSRCのメンバーXMPLE1にあります。 コンパイラー・リストが作成されます。

エラー・メッセージ

*ESCAPE メッセージ

QRG9001
コンパイルは正常に行われませんでした。プログラムは作成されません。
QRG9004
TGTRLSオプションに指定されたリリース&1はサポートされていない。
QRG9005
*SRCDBGまたは*LSTDBGコンパイラー・オプションを処理することはできない。