プログラム (PGM)

プログラム(PGM)コマンドは,コンパイルされるCLプログラムまたはILE CLプロシージャーの開始位置を識別し,コンパイル後にプロシージャーによって受け取られるパラメーターを指定するためにCLソース・ファイルの中で使用されます。PGMコマンドを使用する場合は,ソース・ファイル内の最初のコマンドでなければなりません。PGMコマンドを使用しないと,パラメーターのないPGMコマンドを指定したとみなされます。CLプログラムまたはILE CLプロシージャーの名前は,CLソース・ファイルのコンパイルに使用されるCLコマンドに指定されます。

また,処理のためのPGMコマンドが別のCLプロシージャーによって呼び出される場合には,そのプログラムに渡すパラメーターもこのコマンドが指定します。どのようにして定数を渡すかについては,呼び出し(CALL)コマンドのPARMパラメーターの説明を参照してください。

CLプログラムまたはILE CLプロシージャー・ソース・ファイルをコンパイルしてプログラム(*PGM)オブジェクトを作成した場合は,呼び出し(CALL)または制御権転送 (TFRCTL)コマンドによって,あるいはサブシステム記述の経路指定項目によって,そのプログラムを呼び出すことができます。CALLまたはTFRCTLコマンドによってプログラムを呼び出す時に,指定されたパラメーターをそれに渡すことができます。

プロシージャーを呼び出す時に,このコマンドに定義されたパラメーターを渡す必要があります。渡されるパラメーターは,このコマンドに指定されたタイプ,長さ,および順序のものでなければなりません。各パラメーター値は,文字ストリング,数値,またはCL変数とすることができます。受け取られた各値には,それぞれ異なるCL変数名が割り当てられます。各CL変数名は,プロシージャーのコンパイルの前に個別のDCL(宣言)コマンドによってCLソース・ファイルに定義されていなければなりません。最大で255個のパラメーターを渡すことができます。

ILEプログラムおよびプロシージャーでは,呼び出し側プログラムまたはプロシージャーと呼び出されるプログラムまたはプロシージャーの間のパラメーターの不一致は検出されません。呼び出しプロシージャーが呼び出されるプロシージャーで必要とされる数以上のパラメーターを渡した場合には,呼び出されたプロシージャーでは余分なパラメーターが無視されます。呼び出しプロシージャーが呼び出されるプロシージャーのPGMコマンドに指定された数より少ないパラメーターを渡した場合には,結果は予測できません。

制約事項:このコマンドはCLプログラムまたはILE CLプロシージャー内でのみ有効です。

パラメーター

キーワード 記述 選択項目 ノーツ
PARM パラメーターCL変数名 値 (最大 255 回の繰り返し): CL 変数名 オプショナル, 定位置 1

パラメーターCL変数名 (PARM)

このプロシージャーに渡されたパラメーター値を受け取る1つ以上のCL変数を指定します。受け取るそれぞれの値についてCL変数名を指定してください。名前はアンパーサンド(&)で始めなければなりません。

どのパラメーターにもヌル値*Nを指定することはできません。パラメーター値は,それらがCALLまたはTFRCTLコマンドに指定された順序でPARMパラメーター中の変数と関連付けられます。渡される各値のタイプおよび長さは,呼び出し側プログラムと受け取り側プログラムで属性が一致していなければなりません。ただし,文字定数の場合には,受信プログラムではより短い長さを指定することができます。これを行なった場合には,渡された文字ストリングは受信プログラムで宣言された長さで切り捨てられます。各データ・タイプがどのように渡されるかについては,CALLコマンドのPARMパラメーターの説明を参照してください。

注: パラメーター値をCLプログラムまたはILE CLプロシージャーによって変更するか,あるいはCLコマンドに変数として指定する場合には,それが書き込み可能記憶域になければなりません。例えば,CまたはC++では,ストリングが読み取り専用である場合があります。読み取り専用ストリングがパラメーターとしてCLプログラムまたはILE CLプロシージャーに渡され,CLプログラムまたはILE CLプロシージャーが変数の値を変更したり,CLコマンドの変数を使用しようとした場合には,そのCLプログラムまたはILE CLプロシージャーは正常に実行されません。

CL変数名
呼び出し側プログラムから渡された値を受け取るCL変数の名前を指定してください。最大255個の変数を指定することができます。

1:パラメーターのないCLプロシージャー

PGM
 :
ENDPGM

このPGMコマンドは,パラメーターを含まない制御言語プログラムまたはILE CLプロシージャーのCLソース・ファイルにある最初のコマンドです。

2:2つのパラメーターを含むCLプロシージャー

PGM   PARM(&X &Y)

これは,&Xおよび&Yという2つのパラメーターを含む制御言語プログラムまたはILE CLプロシージャーのCLソース・ファイルにある最初のコマンドで,これらのパラメーターの値は呼び出し側プログラムまたはプロシージャーから渡されたものです。

3:2つのパラメーターを定位置形式で含むCLプロシージャー

PGM   (&PARM1 &PARM2)

これは,&PARM1および&PARM2という2つのパラメーターを定位置形式で指定する制御言語プログラムまたはILE CLプロシージャーのCLソース・ファイルにある最初のコマンドです。このプロシージャーが呼び出されると,呼び出し側プログラムは&PARM1および&PARM2に使用するパラメーター値を渡します。

エラー・メッセージ

なし