パラメーター定義 (PARM)
|
パラメーター 例 エラー・メッセージ |
パラメーター(PARM)コマンド定義ステートメントは,作成中のコマンドのパラメーターを定義します。パラメーターは,値をコマンド処理プログラムに渡す時の手段となります。定義中のコマンドに現れる各パラメーターごとに1つのPARMステートメントを使用しなければなりません。コマンドを定位置形式で入力するときにパラメーターを指定しなければならない順序,およびパラメーターが妥当性検査プログラムおよびコマンド処理プログラムに渡される順序は,PARMステートメントがソース・ファイルに入力された順序で決定されます。1つのコマンドに最大99個のパラメーターを定義することができます。実際にコーディングされているパラメーターの数とは無関係に,たくさんのパラメーターが指定されているコマンドは,コマンド処理プログラムを呼び出す前より多くの処理時間を必要とします。
注: PARMステートメントには,定義中のコマンドによって弊社提供コマンド処理プログラムが呼び出される場合にだけ使用できる一定のパラメーターおよび事前定義の値が含まれます。一部の高水準言語の制約のために,これらの値は,ユーザー定義コマンドの定義ステートメントで有用でないことがあります。このようなパラメーターおよび値は,弊社提供コマンド用という語句によって識別されますが,その語句は適用されるパラメーター・キーワードまたは事前定義値の直後に続きます。
| 上 |
パラメーター
| キーワード | 記述 | 選択項目 | ノーツ |
|---|---|---|---|
| KWD | キーワード | 単純名 | 必須, 定位置 1 |
| TYPE | 値のタイプ | 単純名, *DEC, *LGL, *CHAR, *INT2, *INT4, *NAME, *GENERIC, *VARNAME, *DATE, *TIME, *CMD, *X, *HEX, *ZEROELEM, *NULL, *CMDSTR, *PNAME, *UINT2, *UINT4, *SNAME, *CNAME | 必須, 定位置 2 |
| LEN | 値の長さ | 値 (最大 3 回の繰り返し): 整数 | オプショナル, 定位置 3 |
| RTNVAL | 戻り値 | *NO, *YES | オプショナル |
| CONSTANT | 定数値 | 文字値 | オプショナル |
| RSTD | 制約された値 | *NO, *YES | オプショナル |
| DFT | 省略時の値 | 文字値 | オプショナル |
| VALUES | 有効な値 | 値 (最大 300 回の繰り返し): 文字値 | オプショナル |
| REL | 比較式 | 要素リスト | オプショナル |
| 要素 1: 比較演算子 | *GT, *EQ, *GE, *NL, *LT, *NE, *LE, *NG | ||
| 要素 2: 値またはキーワード参照 | 文字値 | ||
| RANGE | 値の範囲 | 要素リスト | オプショナル |
| 要素 1: 下限値またはキーワード参照 | 文字値 | ||
| 要素 2: 上限値またはキーワード参照 | 文字値 | ||
| SPCVAL | 特殊値 | 値 (最大 300 回の繰り返し): 要素リスト | オプショナル |
| 要素 1: 取り出し値 | 文字値 | ||
| 要素 2: 受け取り置き換え値 | 文字値 | ||
| SNGVAL | 単一値 | 値 (最大 300 回の繰り返し): 要素リスト | オプショナル |
| 要素 1: 取り出し値 | 文字値 | ||
| 要素 2: 受け取り置き換え値 | 文字値 | ||
| MIN | 許される最小値 | 0-300, 0 | オプショナル |
| MAX | 許される最大値 | 整数, 1 | オプショナル |
| ALWUNPRT | 印刷不能文字使用可能 | *YES, *NO | オプショナル |
| ALWVAR | 変数名使用可能 | *YES, *NO | オプショナル |
| PGM | PARMはプログラム名である | *NO, *YES | オプショナル |
| DTAARA | PARMはデータ域名である | *NO, *YES | オプショナル |
| FILE | ファイル・パラメーターの場合の使用法 | *NO, *IN, *OUT, *UPD, *INOUT, *UNSPFD | オプショナル |
| FULL | 全桁入力必須 | *NO, *YES | オプショナル |
| EXPR | 式の評価 | *NO, *YES | オプショナル |
| VARY | 可変の長さ | 単一値: *NO その他の値: 要素リスト |
オプショナル |
| 要素 1: 長さ値の戻し | *YES | ||
| 要素 2: 値の長さ | *INT2, *INT4 | ||
| PASSATR | 属性バイト受け渡し | *NO, *YES | オプショナル |
| PASSVAL | 指定されない場合に渡される値 | *DFT, *NULL | オプショナル |
| CASE | 値のケース | *MONO, *MIXED | オプショナル |
| CCSID | 値のCCSID | *JOB, *UTF16 | オプショナル |
| LISTDSPL | 変位リスト | *INT2, *INT4 | オプショナル |
| DSPINPUT | 画面入力 | *YES, *PROMPT, *NO | オプショナル |
| CHOICE | テキスト選択 | 文字値, *VALUES, *NONE, *PGM | オプショナル |
| CHOICEPGM | プログラム選択 | 単一値: *NONE その他の値: 修飾オブジェクト名 |
オプショナル |
| 修飾子 1: プログラム選択 | 名前 | ||
| 修飾子 2: ライブラリー | 名前, *LIBL, *CURLIB | ||
| PMTCTL | プロンプト制御 | 単純名, *NONE, *PMTRQS | オプショナル |
| PMTCTLPGM | プロンプト制御プログラム | 単一値: *NONE その他の値: 修飾オブジェクト名 |
オプショナル |
| 修飾子 1: プロンプト制御プログラム | 名前 | ||
| 修飾子 2: ライブラリー | 名前, *LIBL, *CURLIB | ||
| KEYPARM | キー・パラメーター | *NO, *YES | オプショナル |
| INLPMTLEN | 初期プロンプト長 | *CALC, *PWD, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 17, 25, 32, 50, 80, 132, 256, 512 | オプショナル |
| PROMPT | プロンプト仕様 | 単一値: *NONE その他の値: 要素リスト |
オプショナル |
| 要素 1: プロンプト・テキスト/MSG ID | 文字値 | ||
| 要素 2: プロンプトが表示される順序 | 整数 |
| 上 |
キーワード (KWD)
定義しようとしているパラメーターのキーワード名を指定します。あらゆるCLコマンド・パラメーターには関連したキーワード名があります。パラメーター・キーワードを使用して指定されたコマンド・パラメーターは,任意の順序で指定することができます。パラメーターは,コマンド作成(CRTCMD)コマンドでMAXPOSパラメーターによって指定された定位置制限までに定位置形式(キーワード名なしで)で指定することができます。
- 単純名
- パラメーターに対するキーワード名を指定してください。名前は,最大10文字の英数字にすることができます。最初の文字は英字でなければなりません。
| 上 |
値のタイプ (TYPE)
キーワード (KWD)に指定のパラメーターに指定できる値のタイプを指定します。値は,整数,10進数,16進数,または論理値とするか,あるいは名前,日付,または時刻を示す文字ストリング(任意選択のアポストロフィで囲んだストリング)とすることができます。値は,コマンドとすることもできます。パラメーター・タイプを指定するためには,次のオプションの1つを入力してください。
- *DEC
- パラメーター値はパック10進数です。
- *LGL
- パラメーター値は'1'または'0'の論理値です。
- *CHAR
- パラメーター値は,任意選択でアポストロフィで囲むことができる文字ストリングです。文字ストリングに特殊文字(アスタリスク(*)以外)がある場合には,それをアポストロフィで囲まなければなりません。文字ストリングの最大長は,CCSIDパラメーターに*JOBを指定する場合は5000バイトで,CCSIDパラメーターに*UTF16を指定する場合は10000バイトです。
- *NAME
- パラメーター値は名前を表す文字ストリングです。この名前の最大長は256バイトです。最初の文字は英字か,または特殊文字\, @,または#の1つでなければなりません。残りの文字は英数字,ピリオド,下線,あるいは特殊文字の1つの\, @,または#とすることができます。また,名前は始めと終わりを二重引用符(")で囲むか,あるいは括弧で囲まれた文字のストリングとすることもできます。特殊値(*LIBLまたは*NONEなどで)を使用する場合には,特殊値 (SPCVAL)パラメーターに指定しなければなりません。
- *SNAME
- パラメーター値は名前を表す文字ストリングです。この名前の最大長は256バイトです。最初の文字は英字か,または特殊文字の1つの\, @,または#でなければなりません。残りの文字は英数字,下線,あるいは特殊文字の1つの\, @,または#とすることができます。文字ストリングは括弧で囲むことができます。特殊値(*LIBLまたは*NONEなどで)を使用する場合には,SPCVALパラメーターに指定しなければなりません。
- *CNAME
- パラメーター値は名前を表す文字ストリングです。この名前の最大長は256バイトです。最初の文字は英字か,または特殊文字\, @,または#の1つでなければなりません。残りの文字は英数字,あるいは特殊文字\, @,または#の1つとすることができます。文字ストリングは括弧で囲むことができます。特殊値(*LIBLまたは*NONEなどで)を使用する場合には,SPCVALパラメーターに指定しなければなりません。
- *PNAME
- パラメーター値はパス名ストリングを表す文字ストリングです。任意選択で,パス名ストリングをアポストロフィで囲むことができます。パス名ストリングに(アスタリスク(*)以外の)特殊文字が入っている場合には,アポストロフィで囲まなければなりません。パス名ストリングの最大長は,CCSIDパラメーターに*JOBを指定する場合は5000バイトで,CCSIDパラメーターに*UTF16を指定する場合は10000バイトです。
- *GENERIC
- パラメーター値は,総称名を表す文字ストリングです。総称名には後に1つ以上の文字の後にアスタリスク(*)が付いたものですが,総称名の規則に従った名前でなければなりません。この名前は,名前がすべてアスタリスク(*)の前の文字で始まる1グループのオブジェクトを識別します。アスタリスク(*)を含めなかった場合には,システムは,総称名を1つの完全なオブジェクト名と見なします。
- *CMDSTR
- パラメーター値は,システムによって妥当性を検査されるコマンドです。これは,コマンド・ストリングとしてコマンド処理プログラムに渡されます。
コマンド分析プログラムは,妥当性を検査する時にコマンド・ストリングを再ビルドします。コマンドが再作成される時には,キーワードが位置指定されてパラメーターに追加され,パラメーターを再順序付けすることができ,印刷できない文字(X'FF'およびX'00からX'3F')が入ったパラメーターは16進数表記法に変換されます。結果として,再作成されたコマンド・ストリングは元のコマンド・ストリングより実際は長くなる場合があります。再作成されたコマンドの長さがLENキーワードで指定された可能な長さより長い場合には,コマンドは正常に実行されません。
注: *CMDSTRパラメーターで選択プロンプトを使用することはできません。
- *DATE
- パラメーター値は,日付を表す文字ストリングです。コマンドを入力する時に,年は2桁または4桁のいずれかで指定することができます。年を2桁で指定する場合には,その日付は1940年1月1日から2039年12月31日までの範囲内になっていると見なされます。年を4桁で指定する場合には,その日付は1928年8月24日から2071年5月9日までの範囲内になっていると見なされます。それがコマンド処理プログラムに渡される時には,常にCYYMMDDの形式で渡されます。ここで,Cは世紀,YYは年,MMは月,およびDDは日を表します。世紀桁は,年が19XXである場合には0(ゼロ)に,年が20XXである場合には1に設定されます。このPARMステートメントに日付の値を指定する時には,次の形式の1つで指定しなければなりません。MMDDYY, MMDDYYYY,またはCYYMMDDです。ユーザーが実行時にコマンドに日付を入力する場合には,ジョブ日付の形式で指定しなければなりません。日付を入力する時は,ジョブ日付区切り文字を使用することができます。区切り文字を使用する場合には,日付をアポストロフィで囲む必要があります。
- *TIME
- パラメーター値は,時刻を表す文字ストリングです。これは,HHMMSSとして6バイトの文字ストリングでコマンド処理プログラムに渡されます。ここで,HH =時,MM =分,およびSS =秒です。このステートメントに指定する値はHHMMSSの形式でなければなりません。コマンドの実行時にユーザーが時刻を入力する場合には,HHMMSSの形式で指定しなければなりません。時刻を入力する場合には,ジョブ時刻区切り記号を使用することができます。区切り文字を使用する場合には,時刻をアポストロフィで囲む必要があります。
- *HEX
- パラメーター値は,16進形式になります。指定する文字は0からFでなければなりません。これらの文字は16進(EBCDIC)文字(1バイトが2桁の16進数字)に変換され,右寄せにされ,左方にゼロが埋め込まれます。値をアポストロフィで囲んだ場合には,偶数桁が必要です。値をアポストロフィで囲まない場合には,偶数桁である必要はありません。
- *ZEROELEM
- パラメーターは常に,コマンドに値を指定できないゼロ要素のリストと見なされます。このパラメーターは,コマンド処理プログラムが値を必要としていても,リストであるパラメーターに値が入力されないようにするために使用されます。例えば,2つのコマンドが同じコマンド処理プログラムを使用する場合には,一方のコマンドはパラメーターのリストを渡すことができますが,もう一方のコマンドに渡す値がないということもあります。2番目のコマンドには,このパラメーターに*ZEROELEMを指定することになります。
- *X
- (弊社提供コマンドの場合)パラメーター値は,文字ストリング,変数名,または数値です。値に数字,+または-符号,あるいは小数点だけが入っている場合には,値は数字として渡され,そうでない場合には,文字ストリングとして渡されます。
- *INT2
- パラメーター値は,2バイトの符号付き2進数として渡される整数です。
- *INT4
- パラメーター値は,4バイトの符号付き2進数として渡される整数です。
- *UINT2
- パラメーター値は,2イトの符号なし2進数として渡される整数です。
- *UINT4
- パラメーター値は,4バイトの符号なし2進数として渡される整数です。
- *VARNAME
- (弊社提供コマンドの場合)パラメーター値は,文字ストリングとして渡されるCL変数名です。
- *CMD
- (弊社提供コマンドの場合)パラメーター値はコマンドです。例えば,IFコマンドには,値が別のコマンドでなければならないTHENと呼ばれるパラメーターがあります。このコマンドは,システムによって妥当性を検査されます。
- *NULL
- パラメーター値は,定数保管場所を示すホルダーとして使用することができるヌル・ポインターです。DEPステートメント,あるいは他のPARMステートメントのRELおよびRANGEキーワードは,このパラメーターに指定された*NULLによって定義されるパラメーターの値を参照することはできません。
- ステートメント・ラベル
- 修飾名または値の混合リストを指定してください。ここに指定するステートメント・ラベルは,このPARMステートメントによって定義している修飾名または混合リストをさらに詳しく記述する最初の一連のQUALまたはELEMステートメントを識別するラベルです。
| 上 |
値の長さ (LEN)
コマンド処理プログラム(CPP)に渡されるパラメーター値の長さを指定します。値のタイプ (TYPE)パラメーターに指定される値に従って,LENパラメーターには最大3つの長さの値を指定できます。
- *INT2, *INT4, *UINT2, *UINT4, *DATE, *TIME, *CMD, *ZEROELEM, *NULL,またはステートメント・ラベルがTYPEパラメーターに指定されていると,LENパラメーターは許可されません。
- *DECがTYPEパラメーターに指定される場合,LEN値1は値の合計桁数を指定し,LEN値2は小数点以下の桁数を指定します。LEN値2が指定されない場合は,値はゼロと見なされます。
- TYPEパラメーターに*HEXを指定した場合に指定できるのはLEN値1のみです。この長さは,16進桁が文字桁に変換された後で渡されるバイト数を指定します。2桁の16進数が1バイトに変換されるので,指定可能な16進桁数はLEN値1の値の2倍になります。
- TYPEパラメーターに*Xを指定した場合には,LENパラメーターは次のように使用されます。
- 文字データの場合には,LEN値1は,渡される最小桁数を指定します。それより長い値が入力された場合は,その値全体が渡されます。
- 10進データの場合には,LEN値2およびLEN値3により,定数値の桁数および小数点以下の桁数を指定します。10進CL変数が入力された場合には,その変数は変数属性に従って渡されます。
- 論理値の場合には,LEN値1に値の桁数を指定しますが,これは常に1です。
- TYPEが*DEC, *HEX,または*X以外の場合は,LEN値1によってCPPに受け渡されたストリングの最大長が指定され,LEN値2および3を指定することができません。
- TYPEパラメーターに*PNAMEまたは*CHARを指定し,また値のCCSID (CCSID)パラメーターに*UTF16を指定すると,CPPに受け渡されるバイト数はLEN値1に指定されるバイト数の2倍になります。UTF16形式では,ほとんどの文字で2バイトが必要なので,LEN値1はUTF16文字で許可されている最大数に近くなります。UTF16ストリングがLEN値1に指定された値の2倍よりも小さければ,CPPに受け渡される値はUTF16ブランク文字によって右側が埋められます。
UTF16形式での値の処理に関する詳細については,CCSIDおよび可変の長さ (VARY)パラメーターの説明を参照してください。
- それ以外の場合では,LEN値1に指定される値は,コマンド処理プログラムに受け渡されるバイトの数になります。短い方の値はCPPへ受け渡される前にブランクがその値の右側に埋め込まれます。
- TYPEパラメーターに*PNAMEまたは*CHARを指定し,また値のCCSID (CCSID)パラメーターに*UTF16を指定すると,CPPに受け渡されるバイト数はLEN値1に指定されるバイト数の2倍になります。UTF16形式では,ほとんどの文字で2バイトが必要なので,LEN値1はUTF16文字で許可されている最大数に近くなります。UTF16ストリングがLEN値1に指定された値の2倍よりも小さければ,CPPに受け渡される値はUTF16ブランク文字によって右側が埋められます。
LENパラメーターが指定可能であるが指定されない場合は,TYPEパラメーターに指定される値に基づいて省略時の長さが使用されます。以下の表は,各TYPEの省略時の長さの値とLENパラメーターに指定できる最大値を示しています。
------------------------------------------------ | TYPE | 省略時の長さ | 最大長 | |------------|----------------|----------------| | *DEC | (15 5) | (24 9) | |------------|----------------|----------------| | *LGL | 1 | 1 | |------------|----------------|----------------| | *CHAR | 32 | 5000 | |------------|----------------|----------------| | *NAME | 10 | 256 | |------------|----------------|----------------| | *GENERIC | 10 | 256 | |------------|----------------|----------------| | *SNAME | 10 | 256 | |------------|----------------|----------------| | *CNAME | 10 | 256 | |------------|----------------|----------------| | *PNAME | 32 | 5000 | |------------|----------------|----------------| | *HEX | 1 | 256 | |------------|----------------|----------------| | *X | (1 15 5) | (256 24 9) | |------------|----------------|----------------| | *VARNAME | 11 | 11 | |------------|----------------|----------------| | *CMDSTR | 256 | 20000 | ------------------------------------------------
| 上 |
戻り値 (RTNVAL)
このPARMステートメントで定義中のパラメーターを介してコマンド処理プログラムが値を戻すかどうかを指定します。
- *NO
- 定義中のパラメーターに値を戻すことはできません。このパラメーターは入力パラメーターです。
- *YES
- 値がコマンド処理プログラムによってパラメーターに戻されます。この値を受け取るためには,(CALLコマンドに)CL変数名を指定しなければなりません。*YESが有効となるのは,値のタイプ (TYPE)パラメーターにステートメント・ラベル,*DEC, *CHAR, *LGL, *INT2, *INT4, *UINT2, *UINT4,または*Xを指定した場合だけです。さらに,*YESはCLプログラムに限定されたコマンドの場合にだけ有効です。すなわち,このPARMステートメントを含むソース・ファイルを使用するコマンド作成(CRTCMD)コマンドに*BPGMまたは*IPGMを指定した場合には,ここに*YESを指定することができます。ここに*YESを指定し,属性バイト受け渡し (PASSATR)パラメーターに*YESを指定した場合には,可変の長さ (VARY)パラメーターに*YESを指定しなければなりません。変数名使用可能 (ALWVAR)パラメーターに*NOを指定した場合,あるいは許される最大値 (MAX)パラメーターが1より大きいである場合には,*YESは無効です。また,*YESを次のパラメーターと一緒に指定した場合にも無効です。
- 定数値 (CONSTANTパラメーター)
- 省略時の値 (DFTパラメーター)
- 制約された値 (RSTDパラメーター)
- 有効な値 (VALUESパラメーター)
- 比較式 (RELパラメーター)
- 値の範囲 (RANGEパラメーター)
- 特殊値 (SPCVALパラメーター)
- 単一値 (SNGVALパラメーター)
- ファイル・パラメーターの場合の使用法 (FILEパラメーター)
- 全桁入力必須 (FULLパラメーター)
- 式の評価 (EXPRパラメーター)
- 値のCCSID (CCSIDパラメーター)
| 上 |
定数値 (CONSTANT)
定義中のコマンドが処理される時に,値が定数としてコマンド処理プログラムに渡されることを指定します。パラメーターは,外見上はコマンド上に現れません。このパラメーターを指定する場合には,その値は,次のパラメーターによって指定された要件を満たさなければなりません。
- 値のタイプ (TYPEパラメーター)
- 値の長さ (LENパラメーター)
- 有効な値 (VALUESパラメーター)
- 比較式 (RELパラメーター)
- 値の範囲 (RANGEパラメーター)
- 特殊値 (SPCVALパラメーター)
- 全桁入力必須 (FULLパラメーター)
このパラメーターに文字定数を指定する場合には,32バイトより長くすることはできません。
定義中のパラメーターに定数を指定した場合には,パラメーターに関するプロンプトは出ないので,プロンプト仕様(PROMPT)パラメーターにプロンプト・テキストを指定することができません。
次の場合には,このパラメーターは無効です。
- 値のタイプ (TYPE)パラメーターに*CMD, *NULL,また*ZEROELEMが指定されている。
- 許される最大値 (MAX)パラメーターに1より大きい値が指定されている。
- 省略時の値 (DFT)パラメーター。
- *YESが戻り値 (RTNVAL)パラメーターに指定されている。
- *YESが式の評価 (EXPR)パラメーターに指定されている。
このパラメーターには変数をコーディングすることはできません。
| 上 |
制約された値 (RSTD)
パラメーター(PARMステートメントで指定)に入力する値が有効な値 (VALUES)パラメーター,特殊値(SPCVAL)パラメーター,または単一値 (SNGVAL)パラメーターに指定された値の1つだけに制限されるか,あるいは次のパラメーターによって指定された要件を満たす値ならどの値でも入力できるかどうかを指定します。
- 値のタイプ (TYPEパラメーター)
- 値の長さ (LENパラメーター)
- 比較式 (RELパラメーター)
- 値の範囲 (RANGEパラメーター)
- 特殊値 (SPCVALパラメーター)
- 単一値 (SNGVALパラメーター)
- 全桁入力必須 (FULLパラメーター)
- *NO
- キーワード (KWD)パラメーターで指定するパラメーターに入力される値は,このPARMステートメントの次のパラメーターによって指定された要件を満たすものであれば,どのような値でも入力することができます。
- 値のタイプ (TYPEパラメーター)
- 値の長さ (LENパラメーター)
- 比較式 (RELパラメーター)
- 値の範囲 (RANGEパラメーター)
- 特殊値 (SPCVALパラメーター)
- 単一値 (SNGVALパラメーター)
- 全桁入力必須 (FULLパラメーター)
- *YES
- このPARMステートメントのKWDにより指定されるパラメーターに入力される値は,有効な値 (VALUES)パラメーターの値の1つ,または特殊値 (SPCVAL)パラメーターまたは単一値 (SNGVAL)パラメーターのいずれかの比較値の1つに限定されます。値のタイプ (TYPE)パラメーターにステートメント・ラベル,*CMD, *NULL,または*ZEROELEMを指定した場合,あるいは戻り値 (RTNVAL)パラメーターに*YESを指定した場合には,*YESを指定することはできません。
| 上 |
省略時の値 (DFT)
ユーザーが値を指定しなかった場合にパラメーターに割り当てられている省略時の値を指定します。すなわち,省略時の値は,コマンド入力中にユーザーがパラメーターを除外した場合,あるいはユーザーがパラメーター値として*Nを指定した場合にパラメーターの値として使用されます。省略時の値は,次のいずれかを満たすものでなければなりません。
- 省略時の値は,次のパラメーターによって指定されている要件を満たすものでなければなりません。
- 値のタイプ (TYPEパラメーター)
- 値の長さ (LENパラメーター)
- 比較式 (RELパラメーター)
- 値の範囲 (RANGEパラメーター)
- 全桁入力必須 (FULLパラメーター)
- この値は,特殊値 (SPCVAL)パラメーター,または単一値 (SNGVAL)パラメーターの中の取り出し値の1つでなければなりません。
- 省略時の値が文字定数である場合には,32バイトを超えることはできません。
- 制約された値 (RSTD)パラメーターに*YESを指定する場合には,省略時の値が,有効な値 (VALUES)パラメーター中の値のリスト,または特殊値 (SPCVAL)パラメーターもしくは単一値 (SNGVAL)パラメーターのいずれかの比較値のリストに含まれていなければなりません。
- 定義中のパラメーターが類似していない値のリストであるか,修飾名である場合には,これは単一値 (SNGVAL)パラメーターの比較値でなければなりません。値のタイプ (TYPE)パラメーターにステートメント・ラベルが指定されている時に,このことが適用されます。このラベルは,QUALまたはELEMステートメントを識別するために使用されます。
定数値 (CONSTANT)パラメーターが指定されている場合には,このパラメーターは無効です。このパラメーターが有効なのは,許される最小値 (MIN)パラメーターに0を指定した場合だけです。これは,キーワード(KWD)パラメーターに指定のパラメーターが任意指定であることを意味します。戻り値 (RTNVAL)パラメーターにRTNVAL(*YES)が指定されている場合には,省略時の値を指定することはできません。かわりにヌル・ポインターが省略時の値として渡されます。値のタイプ (TYPE)パラメーターに*CMD,*ZEROELEM,または*NULLが指定されている場合には,省略時の値を指定することはできません。値のタイプ (TYPE)パラメーターに*VARNAMEが指定されている場合には,省略時の特殊値を指定することができます。省略時の変数名は指定することはできません。
システム想定の省略時の値は,コマンド・プロンプトによって表示されません。かわりにブランクの入力フィールドが表示されます。省略時の値を指定した場合には,それが指定通りにそのままプロンプト機能によって表示されます。
- 値
- 指定した要件を満たす省略時の値,あるいは,有効な値 (VALUES)パラメーター,特殊値(SPCVAL)パラメーター,または単一値 (SNGVAL)パラメーターに指定した値の1つである省略時の値を指定してください。
この値には変数をコーディングすることはできません。
| 上 |
有効な値 (VALUES)
最大300個の定数(固定値)からなるリストを指定します。このリストから,キーワード (KWD)パラメーターに指定のパラメーターの値として1つの定数を入力することができます。このパラメーターが有効なのは,次のすべての要件が満たされた場合だけです。
- *YESが制約された値 (RSTD)パラメーターに指定されている。
- 値の範囲 (RANGE)パラメーターと比較式 (REL)パラメーターが両方とも指定されていない。
- 各固定情報が,次のパラメーターにより指定されている属性に一致していること。
- 値のタイプ (TYPEパラメーター)
- 値の長さ (LENパラメーター)
- 全桁入力必須 (FULLパラメーター)
このパラメーターに指定する文字定数は,32バイトより長くすることはできません。パラメーターの値として指定できる定数(300個以内)を入力してください。値のタイプ (TYPE)パラメーターに*CMD, *CMDSTR, *X, *NULL,ステートメント・ラベル,*VARNAME,または*ZEROELEMを指定した場合,あるいは戻り値 (RTNVAL)パラメーターに*YESを指定した場合には,このパラメーターは無効です。
| 上 |
比較式 (REL)
このパラメーターのパラメーター値と定数または別のパラメーターの値との関係を指定します。キーワードを指定する場合には,これがテストされるキーワードの値であることを示すために,前にアンパーサンド(&)がなければなりません。参照されるキーワードに関連した値は,ユーザー指定の値ではなく,コマンド処理プログラムに渡される値です。関係が値のリストまたは修飾名である別のパラメーターとの関係である場合には,最初の値だけが比較で使用されます。
関係を指定するためには,次の比較演算子のどれかの後に,固定情報か,または他のパラメーターのキーワード名(前に&を付けたもの)を入力してください。
- *LT
- より小さい
- *LE
- 小さいか等しい
- *EQ
- 等しい
- *GE
- 大きいか等しい
- *GT
- より大きい
- *NL
- 小さくない
- *NE
- 等しくない
- *NG
- 大きくない
次の場合には,RELパラメーターが無効です。
- 戻り値 (RTNVAL)パラメーターに*YESを指定した場合。
- 値の範囲 (RANGE)パラメーターまたは有効な値 (VALUES)パラメーターのいずれか一方が指定されている場合。
- 値のタイプ (TYPE)パラメーターに*LGL, *VARNAME, *CMD, *CMDSTR, *X, *ZEROELEM, *NULL,またはステートメント・ラベルを指定した場合。
値のタイプ (TYPE)パラメーターに*CHAR(文字タイプ)を指定した場合には,文字ストリングのEBCDIC値が比較で符号のない整数として使用されます。このパラメーターに文字定数を指定する場合には,32バイトより長くすることはできません。
この要素については変数をコーディングすることができます。
| 上 |
値の範囲 (RANGE)
パラメーター値の範囲または制限を指定します。パラメーター値は,指定の下限値より大きいか等しく,指定の上限値より小さいか等しくなければなりません。例えば,RANGEが(0 16)と指定されている場合には,15は有効になります。
文字などの非数字データ・タイプの場合には,指定された値の範囲およびデータは右寄せにされ,左側にブランクを埋め込まれます。先行ゼロが指定されていないか,あるいはデータ長が1文字しかないかぎり,非数字データの間隔を定義するのに数値範囲は使用しないでください。
この要素については変数をコーディングすることができます。
範囲の上限および下限は,値を表すキーワードまたは値そのものによって指定することができます。キーワードを指定する場合には,そのキーワードの値がテストされることを示すために,キーワードの前にアンパーサンド(&)を付けなければなりません。検査時には,そのパラメーターの値が範囲を決定するために使用されます。テストされる値は,ユーザー指定の値ではなく,コマンド処理プログラムに渡される値です。キーワードが値のリストまたは修飾名を識別している場合には,範囲制限として最初の値だけが使用されます。キーワードは,指定されない場合に渡される値 (PASSVAL)パラメーターに指定された*NULLによって定義されたパラメーターを参照することはできません。指定されない場合に渡される値 (PASSVAL)パラメーターに*NULLが指定されている場合には,このパラメーターは無効です。
次の場合にもこのパラメーターは無効です。
- 戻り値 (RTNVAL)パラメーターに*YESを指定した場合。
- 比較式 (REL)パラメーターまたは有効な値 (VALUES)パラメーターのいずれか一方が指定されている場合。
- 値のタイプ (TYPE)パラメーターに*LGL, *VARNAME, *CMD, *CMDSTR, *X, *ZEROELEM, *NULL,またはステートメント・ラベルを指定した場合。
このパラメーターに指定する文字定数は,32バイトより長くすることはできません。
この要素については変数をコーディングすることができます。
| 上 |
特殊値 (SPCVAL)
パラメーターに入力できる特殊値を定義する最大300個の項目からなるリストを指定します。各項目は,すべての妥当性検査の要件を満たしていなくても入力できる文字ストリング(比較値)を指定します。入力された文字ストリングが1つの項目の比較値に一致していて,置き換え値を指定した場合には,ストリングは置き換え値によって置き換えられてから,それ以上の検査なしにコマンド処理プログラム(CPP)に渡されます。置き換え値を省略した場合には,比較値がCPPに渡されます。戻り値 (RTNVAL)パラメーターに*YESを指定した場合,または,値のタイプ (TYPE)パラメーターに*CMD, *CMDSTR,*X, *ZEROELEM, *NULL,またはステートメント・ラベルを指定した場合には,このパラメーターは無効です。
比較値は文字ストリングですが,置き換え値は,渡すことができればどのようなものでもかまいません。しかし,TYPE(*DATE) の場合には,置き換え値を引用符つきでないMMDDYY, MMDDYYYY, またはCYYMMDDの形式で指定しなければなりません。比較値にCL変数を使用する場合には,そのタイプは*CHARでなければなりません。置き換え値は,値の長さ (LEN)パラメーターに指定されたものより長くてはいけません。また,値のタイプ(TYPE)パラメーターに*DEC, *INT2, *INT4, *UINT2,または*UINT4を指定した場合には,置き換え値のタイプはそれと同じでなければいけません。値のタイプ(TYPE)パラメーターが文字タイプ(*CHAR, *LGL, *DATEなど)である場合には,置き換え値は文字ストリングでなければなりません。このパラメーターに指定する文字定数は,32バイトより長くすることはできません。置き換え値を指定しない場合には,比較値は渡すことができる値でなければなりません。
*CURLIBの置き換え値を指定した場合には,値*CURLIBではなく,現行ライブラリーの名前がCPPに渡されます。比較値が*CURLIBで,置き換え値を指定しなかった場合,あるいは置き換え値が*CURLIBで,アポストロフィで囲まれている場合には,値*CURLIBがCPPに渡されます。
この要素には変数をコーディングすることはできません。
| 上 |
単一値 (SNGVAL)
値のタイプ (TYPE)パラメーターにステートメント・ラベルを指定した時に混合リストまたは修飾名として定義中のパラメーターに指定できる最大300個の単一値のリストを指定するか,あるいは許される最大値 (MAX)パラメーターで定義されたように,リストが2つ以上の値を受け入れることを指定します。パラメーターが受け入れるように定義されている値のリストまたは修飾名の代わりに単一値の1つを入力することができます。各項目は,入力できる文字ストリング(比較値)を指定します。入力された文字ストリングが1つの項目の比較値に一致していて,置き換え値を指定した場合には,データは置き換え値によって置き換えられてから,それ以上の検査なしでコマンド処理プログラム(CPP)に渡されます。置き換え値を除外した場合には,比較値がコマンド処理プログラムに渡されます。
置き換え値(置き換え値を省略した場合には比較値)は,特殊値 (SPCVAL)パラメーターに指定された通りに渡すことができるものでなければなりません。このパラメーターに指定する文字定数は,32バイトより長くすることはできません。このパラメーターを指定できるのは,許される最大値 (MAX)パラメーターが1より大きい場合,あるいはQUALまたはELEMステートメントのステートメント・ラベルとしてTYPEが指定されている場合だけです。各単一値は値のリストまたは修飾名と置き換わることができるだけで,リスト項目または修飾子とすることはできません。単一値はリストの最初のかつ唯一の要素として渡されます。
戻り値 (RTNVAL)パラメーターに*YESを指定した場合,または,値のタイプ (TYPE)パラメーターに*CMD, *CMDSTR,*X, *ZEROELEM, *NULL,またはステートメント・ラベルを指定した場合には,このパラメーターは無効です。
*CURLIBの置き換え値を指定した場合には,値*CURLIBではなく,現行ライブラリーの名前がコマンド処理プログラムに渡されます。比較値が*CURLIBで,置き換え値を指定しなかった場合,あるいは置き換え値が*CURLIBで,アポストロフィで囲まれている場合には,値*CURLIBがコマンド処理プログラムに渡されます。
この要素には変数をコーディングすることはできません。
| 上 |
許される最小値 (MIN)
定義中のパラメーターに入力しなければならない値の最小数を指定します。複数の類似値を入力できないパラメーターでは,値の最小数として任意指定の場合にはゼロ(0)を,また,必須の場合には1だけを指定することができます。
注: 必須パラメーター・ステートメントは,任意指定のステートメントより前になければなりません。必須パラメーター・ステートメントを最初に指定しなかった場合には,システムは,指定されたパラメーターが任意指定であると見なし,必須パラメーターに関する値の最小数は無視されます。
複数の類似値を使用できるパラメーターの場合には,許される最大値 (MAX)パラメーターに1より大きい値を指定しているので,ゼロ(0)は,値を入力する必要がないということを示します。したがって,このパラメーターは任意指定パラメーターです。1以上の値は,パラメーターに入力しなければならない値の最小数を示します。したがって,このパラメーターは必須パラメーターです。値のタイプ (TYPE)パラメーターに*NULLを指定した場合には,値は1を超えることはできません。
- 0
- このパラメーターは任意指定であり,入力しなくてもかまいません。
- 最小数
- このパラメーターに指定しなければならない要素の最小数を指定してください。1が割り当て値である場合には,このパラメーターに少なくとも1つの値が必要であることを指定します。1より大きい数値を指定した場合には,パラメーターは,少なくとも指定した数と同じだけの要素がなければならないリストです。
| 上 |
許される最大値 (MAX)
このPARMステートメントが単純リスト・パラメーターを定義している場合に,このリスト・パラメーターに入れることのできるリスト項目の最大数を指定します。1より大きい値を指定した場合には,このパラメーターは複数の類似の値(すなわち単純リスト)を受け入れることができます。このサポートは主として弊社提供コマンドを対象としています。このパラメーターに対して(コマンドの実行時に)入力されるすべての値は,このPARMステートメントの他のパラメーター値によって指定された妥当性検査要件を満たさなければなりません。
注: リスト・パラメーターの値は,ユーザーがそのパラメーターに入れた値の数を示す2バイトの2進数値を先頭にして,連続して渡されます。CLプログラムでは,変数の中での2進数値の取り扱いはサポートされていません。
- 1
- このパラメーターは値を1つだけ受け入れます。すなわちリスト・パラメーターはありません。
- 最大数
- リスト・パラメーターが受け入れることができる要素の最大数を指定してください。指定する最大数は,許される最小値 (MIN)パラメーターに指定した値より大きいか等しく,300以下でなければなりません。最大数が1より大きく,QUALまたはELEMステートメントを識別するステートメント・ラベルが値のタイプ(TYPE)パラメーターに指定されていない場合には,このパラメーターは,類似値の単純リスト(すなわちリストの各要素がタイプ,桁数など同じ要件をもつリスト)です。ステートメント・ラベルが指定されていて,しかもそのラベルがELEMまたはQUALステートメントのラベルを指している場合には,リストのリストまたは修飾名のリストを受け入れる場合にだけ,このパラメーターに1より大きい値を指定するようにしてください。値のタイプ (TYPE)パラメーターに*CMD, *CMDSTR,または*NULLを指定した場合,戻り値 (RTNVAL)パラメーターに*YESを指定した場合,あるいは定数値 (CONSTANT)パラメーターを指定した場合には,1より大きい最大数は無効です。
| 上 |
印刷不能文字使用可能 (ALWUNPRT)
このパラメーターが16進文字のX'FF'またはX'00'からX'3F'までの範囲の16進文字を受け入れるかどうかを指定します。このパラメーターが有効なのは,値のタイプ (TYPE)パラメーターに*CHARまたは*Xを指定した場合だけです。
- *YES
- 文字は,コマンド処理プログラムに渡して,表示装置または印刷装置に送ることができます。
- *NO
- 印刷不能文字をコマンド処理プログラムに渡すことはできません。
| 上 |
変数名使用可能 (ALWVAR)
パラメーターに変数名が使用可能であるかどうかを指定します。値のタイプ (TYPE)パラメーターに*VARNAME, *ZEROELEM, *NULL,またはステートメント・ラベルを指定した場合には,*NOをこのパラメーターに指定することはできません。
- *YES
- 変数名をパラメーターとして使用することができます。
- *NO
- 変数名をパラメーターとして使用することはできません。
| 上 |
PARMはプログラム名である (PGM)
このプログラム要素がプログラム名であるかどうかを指定します。*YESが有効となるのは,値のタイプ (TYPE)パラメーターにステートメント・ラベル,*CHAR, *NAME, *SNAME, *CNAME,または*GENERICを指定した場合だけです。ここに*YESを指定しても,PARMステートメントによって定義しているパラメーター要素には影響しません。単にこのパラメーターの値がプログラム名であることをコンパイラーに示すだけです。この情報は,プログラム参照表示(DSPPGMREF)コマンドの出力に含めることができるように記憶されます。
- *NO
- このPARMステートメントに定義されたパラメーターはプログラム名ではありません。
- *YES
- このPARMステートメントに定義されたパラメーターはプログラム名です。
| 上 |
PARMはデータ域名である (DTAARA)
このパラメーターがデータ域名であるかどうかを指定します。*YESが有効となるのは,値のタイプ (TYPE)パラメーターにステートメント・ラベル,*CHAR, *NAME, *SNAME, *CNAME,または*GENERICを指定した場合だけです。ここに*YESを指定しても,PARMステートメントによって定義しているパラメーターには影響しません。単にこのパラメーターの値がデータ域名であることをコンパイラーに示すだけです。この情報は,プログラム参照表示(DSPPGMREF)コマンドの出力に含めることができるように記憶されます。
- *NO
- このPARMステートメントに定義されたパラメーターはデータ域名ではありません。
- *YES
- このPARMステートメントに定義されたパラメーターはデータ域名です。
| 上 |
ファイル・パラメーターの場合の使用法 (FILE)
ファイルの予定している用途およびパラメーターがファイル名であるかどうかを指定します。パラメーターは,特定の用途をもったファイル名として指定することができるので,コンパイル時には,この名前を使用して,ファイルの使用状況についてのファイル参照情報を得ることができます。このパラメーターに指定しても,定義中のパラメーターの機能に影響しません。単にこのパラメーターの値がファイル名であることおよびファイルのタイプをコンパイラーに示すだけです。この情報は,DSPPGMREF(プログラム参照表示)コマンドの出力に含めることができるように記憶されます。このパラメーターが有効なのは,値のタイプ (TYPE)パラメーターにステートメント・ラベル,*CHAR, *NAME, *SNAME, *CNAME,または*GENERICを指定した場合だけです。戻り値 (RTNVAL)パラメーターに*YESを指定した場合には,無効です。
- *NO
- このパラメーターはファイル名ではありません。
- *IN
- パラメーター値は入力ファイル名です。
- *OUT
- パラメーター値は出力ファイル名です。
- *UPD
- パラメーター値は更新ファイル名です。
- *INOUT
- パラメーター値は,入力と出力の両方に使用されるファイル名です。
- *UNSPFD
- パラメーター値はファイルの名ですが,その用途は指定することはできません。
ファイルの用途は,指定したファイルのタイプと一致しなければなりません。例えば,*INを指定した場合には,ファイルは入力だけに使用することができます。*UPDを指定した場合には,ファイルは既存のレコードの更新だけに使用することができます。
| 上 |
全桁入力必須 (FULL)
パラメーター値のバイト数が値の長さ (LEN)パラメーターを指定した場合にはそこに指定された数,あるいはLENを指定しなかった場合には省略時の長さと正確に同じでなければならないかどうかを指定します。
- *NO
- パラメーター値のバイト数をLENパラメーターで指定されたバイト数より少なくすることができます。
- *YES
- このパラメーター値のバイト数は,LENパラメーターによって指定された数,あるいは該当タイプの省略時の長さに等しくなければなりません。正確な長さが有効なのは,値のタイプ (TYPE)パラメーターに*LGL, *CHAR, *NAME, *SNAME, *CNAME, *PNAME, *GENERIC, *VARNAME,または*HEXを指定した場合だけです。戻り値 (RTNVAL)パラメーターに*YESを指定した場合に,ここに*YESを指定することができます。
| 上 |
式の評価 (EXPR)
KWDパラメーターに指定したパラメーターが文字連結のある式または組み込み関数(%SUBSTRINGまたは%BIN)を受け入れることができるかどうかを指定します。
制約事項:値のタイプ (TYPE)パラメーターに*CMD, *ZEROELEM, *NULL,またはステートメント・ラベルを指定したパラメーターに式を使用することはできません。
- *NO
- パラメーターの値として連結式または組み込み関数を使用することはできません。
- *YES
- パラメーターの値として連結式または組み込み関数を使用することができます。
| 上 |
可変の長さ (VARY)
コマンド処理プログラムに渡されるパラメーター値の前に,コマンド・パラメーターに入力されたバイト数を示す長さ値を付けるかどうかを指定します。
注: 長さの値は,コマンド・パラメーターに入力され,後書きブランクを除去した実際のバイト数です。渡される長さの値は,定義されたパラメーターの長さまたは宣言された変数の長さと異なることがあります。文字ストリング・データが入っているフィールドの長さは,パラメーターについて定義された長さまたはCLプログラム変数について宣言されたLENによって決定されます。長さの値は,実際にコマンド・パラメーターに入力されたバイトの数を定義します。TYPEパラメーターに*PNAMEまたは*CHARを指定し,また値のCCSID (CCSID)パラメーターに*UTF16を指定すると,コマンド処理プログラムに受け渡された長さの値は,パラメーター値のバイトの数を表します。この数は,値の長さ (LEN)パラメーターに指定した数の2倍が最大です。これはパラメーター値がUTF16形式に変換され,UTF16文字のほとんどで2バイトが必要となるためです。UTF16形式での値の処理に関する詳細については,CCSIDおよびLENパラメーターの説明を参照してください。
単一値
- *NO
- パラメーター値の前に長さ値を付けません。
要素1: 長さ値の戻し
- *YES
- CPPに渡されるパラメーターの値の前に,パラメーターに実際に指定されたバイト数を示すフィールドが先行します。*YESを使用できるのは,次のパラメーター・タイプの場合だけです。*CHAR, *NAME, *SNAME, *CNAME, *PNAME, *GENERIC, *LGL, *VARNAME, *CMD, *CMDSTR,および*X。PASSATR(*YES)およびRTNVAL(*YES)が指定されている場合には,*YESを指定しなければなりません。
要素2: 値の長さ
- *INT2
- パラメーターの長さの値は2バイトの符号付き2進数として渡される整数です。
- *INT4
- パラメーターの長さの値は,4バイトの符号付き2進数として渡される整数です。
| 上 |
属性バイト受け渡し (PASSATR)
パラメーター・データとともに属性バイトがコマンド処理プログラムに渡されるかどうかを指定します。
属性バイトは,パラメーター・データの前に置かれます。パラメーターで複数の値を指定できる場合には,それぞれの値の前に属性バイトが置かれます。
- *NO
- パラメーターとともに属性バイトが渡されません。
- *YES
- パラメーターとともに属性バイトが渡されます。
属性バイトには次の2つのフィールドがあります。
- 属性バイトの左端のビットは,値が指定されたかどうかを示します。左端のビットが'0'Bである場合は,コマンド処理プログラムに渡される値は省略時の値で,コマンド・ストリングには指定されていません。左端のビットが'1'Bである場合は,コマンド処理プログラムに渡される値はコマンド・ストリングに指定されています。
- 値のタイプ (TYPE)パラメーターに*CHARが指定された場合には,残り7つのビットは,コマンド処理プログラムに渡される値を記述します。
属性 説明 ---------- -------------------------------------- '0000010'B A_Bなどの*NAME規則を満たします。 '0000100'B AB*などの*GENERIC規則を満たします。 '1000101'B 'A B'などの引用符付き文字ストリング '0000101'B 5Aなどの引用符なし文字ストリング '1001000'B '0'または'1'の論理定数 '0001100'B X'C1C2'などの16進値 '0100001'B 5などの符号なし数値 '0101001'B 小数点付き符号なし数値 (5.2など) '0110001'B -5などの符号付き数値 '0111001'B 小数点付き符号付き数値 (-5.2など)
| 上 |
指定されない場合に渡される値 (PASSVAL)
このパラメーターの値がコマンド処理プログラムに渡されるかどうかを指定します。パラメーターが定数パラメーターである場合には,*NULLは無効です(定数パラメーターとは,定数値(CONSTANT)パラメーターに値が指定されているパラメーター,値のタイプ (TYPE)パラメーターに*ZEROELEMまたは*NULLが指定されているパラメーター,あるいはすべての定数ELEMまたはQUALステートメントによって定義されたリスト/修飾名です)。戻り値 (RTNVAL)パラメーターに*YESが指定されている場合,あるいは許される最小値 (MIN)パラメーターに指定された値がゼロより大きい場合にも無効です。DEPステートメント,あるいは他のPARMステートメントのRELおよびRANGEキーワードは,*NULLで定義されたパラメーターの値を参照することはできません。
- *DFT
- 省略時の値は常にコマンド処理プログラムに渡されます。
- *NULL
- パラメーターが指定されていない場合には,NULLポインターがコマンド処理プログラムに渡されます。
| 上 |
値のケース (CASE)
CPPに渡される値を小文字から大文字に変更するか,あるいはコマンド・パラメーターに指定された大文字・小文字で保存するかどうかを指定します。
- *MONO
- パラメーターの値は,小文字から大文字に変更されます。アポストロフィで囲まれたパラメーターでは,この値の指定の有無にかかわらず,大文字・小文字がそのまま保存されます。
- *MIXED
- パラメーターの値は,コマンド・パラメーターに指定された大文字・小文字で保存されます。この値は,*CHARおよび*PNAMEパラメーター・タイプの場合にだけ指定することができます。
| 上 |
値のCCSID (CCSID)
パラメーター値をコマンド処理プログラムに渡すときに使用するコード化文字セットID (CCSID)を指定します。
注: コマンド・ストリングが,1208 (UTF8)のCCSIDで作成されたソース・ファイルからデータベース読み取りプログラム開始(STRDBRDR)コマンドまたはデータベース・ジョブ投入(SBMDBJOB)コマンドを使用してバッチで実行される場合,または1208のCCSIDで作成されたCLソース・ファイルからコンパイルされた場合,またはQCAPCMD APIを使用して実行され,コマンドのCCSIDが1200 (UTF16)または1208のいずれかであると指定する場合,コマンド・ストリングはユニコード形式であると見なされます。
- *JOB
- コマンド・ストリングがユニコード形式である場合は,このパラメーターの値はコマンド処理プログラムに受け渡される前にジョブCCSIDに変換されます。そうでない場合は,このコマンド・ストリングは既にジョブのCCSID内に存在していると見なされ,このパラメーターに対して変換は行われません。
- *UTF16
- パラメーター値はUTF16ストリングとしてコマンド処理プログラム(CPP)に受け渡されます。UTF16はCCSID 1200と同じユニコード形式です。UTF16形式では,ほとんどの文字で2バイト(16ビット)が必要です。コマンド・ストリングがサポートされたユニコードCCSID (1208または1200)である場合,パラメーター値の変換はほとんどあるいはまったく実行されません。そうでない場合は,このコマンド・ストリングは既にジョブのCCSID内に存在していると見なされ,パラメーター値はジョブのCCSIDからCCSID 1200 (UTF16)に変換されます。
パラメーターがオプションで,コマンド・ストリングに値が指定されていない場合は,定義された省略時の値は,CPPに受け渡される前にUTF16形式に変換されます。パラメーターが定数である場合は,定義された定数値はCPPに受け渡される前にUTF16形式に変換されます。パラメーター値がコマンド・ストリングで16進リテラルとして指定される場合,16進ストリングはまずジョブのCCSIDを使用して文字ストリングに変換され,その結果生じる文字ストリングはCPPに受け渡される前にUTF16に変換されます。
*UTF16は,*CHARまたは*PNAMEがTYPEに指定された場合にのみ許可されます。
UTF16形式での値の処理に関する詳細については,値の長さ (LEN)パラメーターおよび可変の長さ (VARY)パラメーターの説明を参照してください。
| 上 |
リスト変位(LISTDSPL)
リスト内のリストに対する変位が2バイトと4バイトのどちらの長さであるかを指定します。これらの変位は,CPPに渡されているパラメーターにリスト内のリストが入れられた時に生成されます。CPPについて作成中の値にリスト内のリストが含まれない場合には,このパラメーターは無視されます。
- *INT2
- 変位値は,2バイトの符号付き2進数として渡される整数です。
- *INT4
- 変位値は,4バイトの符号付き2進数として渡される整数です。
| 上 |
画面入力 (DSPINPUT)
キーワード値をジョブ・ログに入れるか,プロンプト画面に表示するかを指定します。
注: DSPINPUTパラメーターは,データベース読み取りプログラム・ジョブ,組み込みコマンド(例えばSBMJOBで投入されるコマンド),またはQCAPCMD, QCMDEXC,またはQCAEXEC APIを使用して実行されるコマンドでは,ジョブ・ログ項目に影響を及ぼしません。
- *YES
- 省略時の応答*YESは,パラメーター値がプロンプト画面に表示され,ジョブ・ログに入れられることを指定します。
- *PROMPT
- 応答*PROMPTは,パラメーター値がプロンプト画面に表示されるが,ジョブ・ログに入れられないことを示します。
- *NO
- 応答*NOは,値がプロンプト画面に表示されず,ジョブ・ログに入れられないことを指定します。
| 上 |
テキスト選択 (CHOICE)
プロンプト画面で入力フィールドの右側に表示される選択項目テキストを指定します。最大30桁のテキストを表示することができます。
- *VALUES
- 選択項目テキストは,TYPE, RSTD, RANGE, SNGVAL, SPCVAL,およびVALUESパラメーターに指定された値を基にして生成されます。定数をRANGEパラメーターに指定する場合は,選択項目テキストはハイフンで区切られた最小値と最大値で始まります。RANGEを最小値と最大値として定数で指定しないで,RSTD(*NO)を指定する場合は,選択項目テキストはTYPEパラメーターに指定された値を基にしたパラメーター・タイプの簡略説明で始まります。SNGVALパラメーターに指定した値が,値がコマンド定義ソースに定義されていて,コンマとブランクで区切られている順序で,選択項目テキストに追加されます。選択テキストに追加された最後の項目が,値がコマンド定義ソースに定義されていて,コンマとブランクで区切られている順序で,SPCVALまたはVALUESパラメーターに指定された値です。30桁に入らないほど多くの値がある場合には,最後の値の後にピリオドが3つ続けられます。
以下はCHOICE(*VALUES)によって生成されることがある選択項目テキストの例です。
- TYPE(*DEC), RANGE(1.0 999.9),およびSPCVAL((*NOMAX -1))を指定すると,選択項目テキストは次のようになります。
1.0から999.9, *NOMAX
- TYPE(*NAME), RSTD(*NO), SNGVAL(*ALL),およびSPCVAL(*LIBL *CURLIB)を指定すると,選択項目テキストは次のようになります。
名前,*ALL, *LIBL, *CURLIB
- RSTD(*YES), SNGVAL(*ALL),およびSPCVAL(*ALRTBL *BNDDIR *CHTFMT *CLD *CLS *CMD)を指定すると,選択項目テキストは次のようになります。
*ALL, *ALRTBL, *BNDDIR...
- TYPE(*DEC), RANGE(1.0 999.9),およびSPCVAL((*NOMAX -1))を指定すると,選択項目テキストは次のようになります。
- *NONE
- 値は表示されません。
- *PGM
- 呼び出されるプログラムが表示する値を決定します。呼び出されるプログラムはPARMステートメントのプログラム選択 (CHOICEPGM)パラメーターで識別されます。
- メッセージID
- 使用できる値フィールドのテキストが入っているメッセージの検索に使用されるメッセージのメッセージIDを指定します。コマンド作成(CRTCMD)コマンドの プロンプト・テキスト用メッセージ・ファイル (PMTFILE)パラメーターに指定されたメッセージ・ファイルは,メッセージの検索に使用されます。
- '選択項目テキスト'
- 30文字以内をアポストロフィで囲んで指定してください。
| 上 |
プログラム選択 (CHOICEPGM)
可能な選択項目テキストおよび許される値を入力するためにコマンド・プロンプトが出されている間に,呼び出するプログラムを指定します。テキスト選択 (CHOICE)パラメーターに*PGMを指定した場合には,このパラメーターを指定しなければなりません。そうでない場合には,指定することはできません。
単一値
- *NONE
- 選択可能項目テキストおよび指定可能な値を表示するために使用するプログラムはありません。
修飾子1: プログラム選択
- 名前
- 選択可能項目テキストまたは指定可能な値を表示するためにプロンプト表示中に呼び出すプログラムの名前を指定します。プログラムが呼び出される時に例外が起こった場合には,選択可能項目テキストはブランクのままになり,指定可能値のリストはコマンドから取得されます。
修飾子2: ライブラリー
- *LIBL
- 最初に一致するものが見つかるまで,現行スレッドのライブラリー・リスト内のすべてのライブラリーが検索されます。
- *CURLIB
- プログラムを見つけるために,ジョブの現行ライブラリーが使用されます。ジョブの現行ライブラリーとして指定されているライブラリーがない場合は,QGPLが使用されます。
- 名前
- プログラムが入っているライブラリーの名前を指定してください。
| 上 |
プロンプト制御 (PMTCTL)
このパラメーターにはプロンプト表示をどのように制御するかを指定します。プロンプト表示は,このパラメーターのラベルによって参照されるプロンプト制御(PMTCTL)ステートメントで指定する別のパラメーターによって,あるいはF10キーを押すことによるユーザー要求によって,制御することができます。
- *NONE
- 選択プロンプトのために除外されていないかぎり,パラメーターのプロンプトが常に表示されます。
- *PMTRQS
- 次の場合でないかぎり,パラメーターについてのプロンプトは表示されません。
- ユーザーが任意指定パラメーターについてのプロンプトを要求した場合。
- プロンプトが呼び出される前に値が入力された場合。
- パラメーターが選択プロンプト文字によって選択されていること。
- ステートメント・ラベル
- このパラメーターのプロンプトを表示するかどうを決定するために使用されるプロンプト制御(PMTCTL)ステートメントのラベルを指定してください。次の場合でないかぎり,パラメーターについてのプロンプトは表示されません。
- 参照されたPMTCTLステートメントで指定された条件が一致しました。
- プロンプトが呼び出される前に値が入力された場合。
- パラメーターが選択プロンプト文字によって選択されていること。
| 上 |
プロンプト制御プログラム (PMTCTLPGM)
パラメーターに指定された値をプロンプト制御(PMTCTL)ステートメントで使用される値に変換するために呼び出されるプログラムを指定します。このパラメーターは,PMTCTLステートメントの制御キーワード (CTL)パラメーターで参照されるパラメーターについてだけ有効です。
単一値
- *NONE
- プロンプト制御ステートメントのパラメーター値を変換するためのプログラムを呼び出しません。プロンプト制御(PMTCTL)ステートメントにパラメーターが指定されている場合には,そのPMTCTLステートメントで実際の値が比較されます。
修飾子1: プロンプト制御プログラム
- 名前
- パラメーター値を変換するために呼び出されるプログラムの名前を指定してください。
修飾子2: ライブラリー
- *LIBL
- 最初に一致するものが見つかるまで,現行スレッドのライブラリー・リスト内のすべてのライブラリーが検索されます。
- *CURLIB
- プログラムを見つけるために,ジョブの現行ライブラリーが使用されます。ジョブの現行ライブラリーとして指定されているライブラリーがない場合は,QGPLが使用されます。
- 名前
- プログラムが入っているライブラリーの名前を指定してください。
| 上 |
キー・パラメーター (KEYPARM)
コマンドのプロンプトが表示される時にこのパラメーターが最初に表示され,コマンドの作成または変更時にプロンプト一時変更プログラムが指定されたことを指定します。プロンプト一時変更プログラムが指定されていない場合には,すべてのパラメーターでKEYPARM(*NO)と見なされます。
- *NO
- パラメーターが最初に表示されません。
- *YES
- パラメーターが最初に表示されます。
| 上 |
初期プロンプト長 (INLPMTLEN)
コマンドのプロンプトが出された時にパラメーターに対して最初に表示される入力フィールドの長さを指定します。ユーザーは,このフィールドの先頭位置にアンパーサンド(&)を入力することによって(次の桁はブランクにする),このフィールドを最大長の512バイトまで拡張することができます。INLPMTLENは,TYPEが*CHAR, *NAME, *SNAME, *CNAME, *PNAME, *GENERIC, *CMDSTR, *HEX, *X,または*CMDと指定された場合にのみ有効です。FULL(*YES), RSTD(*YES),またはCONSTANTが指定された場合には,INLPMTLEN(*CALC)を指定するか,あるいはこれを省略時の値として使用しなければなりません。
- *CALC
- プロンプターが,パラメーターのタイプと長さに基づいてプロンプト・フィールドの長さを決定します。
- *PWD
- システム値QPWDLVLの現在の値が'0'または'1'の場合には,プロンプト・フィールドの長さは10バイトになります。そうでない場合には,プロンプト・フィールドの長さはパラメーターの長さによって決定されます。INLPMTLEN(*PWD)は,TYPEが*CHAR, *NAME, *SNAME, *PNAME,または*CNAMEと指定された場合にのみ有効です。
- 初期プロンプト長
- 初期長をバイト数で指定してください。有効な値は1から12, 17, 25, 32, 50, 80, 132, 256,および512です。
| 上 |
プロンプト仕様 (PROMPT)
パラメーターに使用されるプロンプト・テキストを指定します。プロンプト・テキストには,コマンドのプロンプトが出されるときにパラメーター入力フィールドの横に現れるパラメーターの簡略説明が表示されます。値のタイプ (TYPE)パラメーターに*ZEROELEMまたは*NULLを指定した場合,あるいは定数値 (CONSTANT)パラメーターに定数値を指定した場合には,プロンプト・テキストを指定することはできません。
単一値
- *NONE
- このPARMステートメントによって定義されたパラメーターのプロンプト・テキストは表示されません。このパラメーターは,キーワード名でまだプロンプトが表示されますが,プロンプト・テキストはキーワード名の横に表示されません。
要素1: プロンプト・テキスト/MSG ID
- メッセージID
- パラメーターのプロンプトが出される時に表示される最大30バイトのプロンプト・テキストを含むメッセージを識別するメッセージIDを指定してください。指定されたIDをもつメッセージをコマンド作成(CRTCMD)コマンドの プロンプト・テキスト用メッセージ・ファイル(PMTFILE)パラメーターに指定されたメッセージ・ファイルに見つけることができない場合には,メッセージIDそのものがプロンプト・テキストとして使用されます。
- 'プロンプト・テキスト'
- パラメーターのプロンプトが表示される時に示されるプロンプト・テキストを指定してください。このテキストは,アポストロフィで囲んだ30バイト以内の文字ストリングでなければなりません。
要素2: プロンプトが表示される順序
- 相対プロンプト番号
- このパラメーターには相対プロンプト番号を指定することができます。相対プロンプト番号は,パラメーター・キーワードのプロンプトが表示される順序を指定します。この順序はプロンプト表示の順序にだけ影響し,コマンド処理プログラムにパラメーターが渡される順序には影響しません。プロンプト番号をもつパラメーターはプログラム番号をもたないパラメーターより前にプロンプトが表示されます。
| 上 |
例
例1:数値パラメーターの定義
PARM KWD(X) TYPE(*DEC) LEN(2) MIN(1) REL(*GT 5)
2桁の10進数であるXという名前のパラメーターに対する値を入力する必要があります。この値は5より大きくしなければなりません。
例2:制限付きの値を指定したパラメーターの定義
PARM KWD(CLASS) TYPE(*CHAR) LEN(1) DFT(A) +
VALUES(A B C) RSTD(*YES)
CLASSという名前のパラメーターの値は,指定する場合は,A, B,またはCとする必要があります。CLASSを指定しない場合は,コマンド処理プログラムに渡される省略時の値はAになります。
例3:有効値の範囲を指定したパラメーターの定義
PARM KWD(MAXREC) TYPE(*DEC) LEN(3 0) MIN(1) +
RANGE(&MINREC 500)
MAXRECパラメーターの値は,小数点以下の桁数がない,3桁以下の10進数として入力する必要があります。この値は,パラメーターMINRECに入力された値(または省略時の値)以上とする必要があり,500以下である必要もあります。
例4:単純リスト・パラメーターの定義
PARM KWD(FILES) TYPE(*NAME) MIN(2) MAX(5)
FILESパラメーターは,最小で2つの名前と最大で5つの名前が入っている同種のリストです。
例5:制限付きの値を指定したリスト・パラメーターの定義
PARM KWD(INVFNAME) TYPE(*NAME) DFT(*ALL) +
SNGVAL((*ALL XXX)) VALUES(DEPT1 DEPT2 DEPT3) +
FILE(*UPD) MIN(0) MAX(3) RSTD(*YES) +
PROMPT(USR0002 1)
INVFNAMEという名前のパラメーターの値は,DEPT1, DEPT2, DEPT3,および*ALLが有効な選択項目である,最大3個までのファイル名のリストとすることができます。*ALLを入力すると,その他の値をこのパラメーターには入力することができません。このパラメーターをファイル場合は,ファイル名XXXがコマンド処理プログラムに渡されます。このパラメーターをコマンドのプロンプトによって入力する場合は,このパラメーターに対するプロンプト・テキストは,コマンドの作成時に,コマンド作成(CRTCMD)コマンドのPMTFILEパラメーターに指定されたメッセージ・ファイルのメッセージID USR0002から検索されます。*ALLは省略時のパラメーター値として表示されます。
| 上 |
エラー・メッセージ
なし
| 上 |