要素定義 (ELEM)

要素(ELEM)コマンド定義ステートメントは,コマンド上の混合リスト・パラメーターの要素を定義するために使用されます。リスト・パラメーターとは,1つのパラメーターによって示される連続した値として一緒に渡される複数の値を受け入れるパラメーターです。値の前には,パラメーターに定義された要素の数を示す2バイトの2進数が付いています。

リスト項目とは,リスト中の特定の順序で並べられたいくつかの値のグループの中の1つの値を表す値です。タイプの異なるリスト要素がある場合には,定義しているリストの各要素にそれぞれ1つのELEMステートメントを使用しなければなりません。すべての要素が同じタイプのものである(単純リスト)場合には,個別にELEMステートメントを使用する必要はありません。単純リストの場合には,PARMステートメントの許される最大値 (MAX)パラメーターにリストの要素の数を指定するだけで十分です。

リスト中における各ELEMステートメントの位置的順序は,それらがソース・ファイルに入力される順序によって決まります。最初のELEMステートメント(最初のリスト項目に対するもの)には,同じリストに対するPARMまたはELEMステートメントの値のタイプ (TYPE)パラメーターのステートメント・ラベルと一致するステートメント・ラベルが必要です。リスト中の残りのELEMステートメントはラベルなしでなければなりません。異なる値をもつ要素のリストのネストは,最高位のレベルを含めて,3レベルの深さまで可能です。1つのリストには最大300個の要素を含めることができます。

注: ELEMステートメントには,定義中のコマンドによって弊社提供コマンド処理プログラム(CPP)が呼び出される場合にだけ使用できる一定のパラメーターおよび事前定義の値が含まれます。一部の高水準言語では制限があるので,このような値は,ユーザー定義コマンドの定義ステートメントでは有用でない場合があります。パラメーター全体が弊社提供コマンド専用である場合には,このようなパラメーターおよび値は,弊社提供コマンド用という語句によって識別されますが,その語句は適用されるパラメーター・キーワードまたは事前定義値の直後に続きます。

パラメーター

キーワード 記述 選択項目 ノーツ
TYPE 値のタイプ 単純名, *DEC, *CHAR, *LGL, *NAME, *VARNAME, *INT2, *GENERIC, *INT4, *DATE, *TIME, *ZEROELEM, *HEX, *SNAME, *PNAME, *UINT2, *UINT4, *X, *CNAME 必須, 定位置 1
LEN 値の長さ 値 (最大 3 回の繰り返し): 整数 オプショナル, 定位置 2
CONSTANT 定数値 文字値 オプショナル
RSTD 制約された値 *YES, *NO オプショナル
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 ELEMはプログラムである *NO, *YES オプショナル
DTAARA ELEMはデータ域である *NO, *YES オプショナル
FILE ファイル・パラメーターの場合の使用法 *NO, *IN, *OUT, *UPD, *INOUT, *UNSPFD オプショナル
FULL 全桁入力必須 *YES, *NO オプショナル
EXPR 式の評価 *NO, *YES オプショナル
VARY 可変の長さ 単一値: *NO
その他の値: 要素リスト
オプショナル
要素 1: 長さ値の戻し *YES
要素 2: 値の長さ *INT2, *INT4
PASSATR 属性バイト受け渡し *YES, *NO オプショナル
CASE 値のケース *MONO, *MIXED オプショナル
CCSID 値のCCSID *JOB, *UTF16 オプショナル
DSPINPUT 画面入力 *YES, *PROMPT, *NO オプショナル
CHOICE テキスト選択 文字値, *VALUES, *NONE, *PGM オプショナル
CHOICEPGM プログラム選択 単一値: *NONE
その他の値: 修飾オブジェクト名
オプショナル
修飾子 1: プログラム選択 名前
修飾子 2: ライブラリー 名前, *LIBL, *CURLIB
INLPMTLEN 初期プロンプト長 *CALC, *PWD, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 17, 25, 32, 50, 80, 132, 256, 512 オプショナル
PROMPT プロンプト・テキスト/MSG ID 文字値, *NONE オプショナル

値のタイプ (TYPE)

定義中のリスト項目のタイプを指定します。この要素は,整数,10進数値,または論理値とするか,あるいは名前,ラベル,日付,または時刻となることができる引用符付きまたは引用符なしの文字ストリングとすることができます。

*DEC
リスト項目はパック10進数値です。
*LGL
リスト項目は論理値(1('1')またはゼロ('0')のいずれか)です。
*CHAR
リスト項目は(任意に)アポストロフィで囲むことができる文字ストリングです。文字ストリングに特殊文字(アスタリスク(*)以外)がある場合には,それをアポストロフィで囲まなければなりません。文字ストリングの最大バイト数は,CCSIDパラメーターに*JOBを指定する場合は5000で,CCSIDパラメーターに*UTF16を指定する場合は10000です。
*NAME
リスト項目は名前を表す文字ストリングです。この名前の最大長は256バイトです。最初の文字は英字か,または特殊文字¥, @,または#の1つでなければなりません。また,名前は始めと終わりを二重引用符(")で囲むか,あるいは括弧で囲まれた文字のストリングとすることもできます。特殊値(*LIBLまたは*NONEなどで)を使用する場合には,特殊値 (SPCVAL)パラメーターに指定しなければなりません。
*SNAME
リスト項目は名前を表す文字ストリングです。この名前の最大長は256バイトです。最初の文字は英字か,または特殊文字の1つの¥, @,または#でなければなりません。残りの文字は英数字,下線,あるいは特殊文字の1つの¥, @,または#とすることができます。文字ストリングは括弧で囲むことができます。特殊値(*LIBLまたは*NONEなどで)を使用する場合には,SPCVALパラメーターに指定しなければなりません。
*CNAME
リスト項目は名前を表す文字ストリングです。この名前の最大長は256バイトです。最初の文字は英字か,または特殊文字¥, @,または#の1つでなければなりません。特殊値(*LIBLまたは*NONEなどで)を使用する場合には,特殊値 (SPCVAL)パラメーターに指定しなければなりません。
*PNAME
リスト項目はパス名ストリングを表す文字ストリングです。任意選択で,パス名ストリングをアポストロフィで囲むことができます。パス名ストリングに(アスタリスク(*)以外の)特殊文字が入っている場合には,アポストロフィで囲まなければなりません。パス名ストリングの最大長は,CCSIDパラメーターに*JOBを指定する場合は5000バイトで,CCSIDパラメーターに*UTF16を指定する場合は10000バイトです。
*GENERIC
リスト項目は総称名を表す文字ストリングです。総称名は,1つ以上の文字の後にアスタリスク(*)が付いたものですが,総称名の規則に従った名前でなければなりません。総称名は,アスタリスクに先行する文字で始まる名前をもつ1グループのオブジェクトを識別します。アスタリスクを含めなかった場合には,システムは,総称名を1つの完全なオブジェクト名と見なします。
*DATE
リスト項目は日付を表す文字ストリングです。コマンドを入力する時に,年は2桁または4桁のいずれかで指定することができます。年を2桁で指定する場合には,その日付は1940年1月1日から2039年12月31日までの範囲内になっていると見なされます。年を4桁で指定する場合には,その日付は1928年8月24日から2071年5月9日までの範囲内になっていると見なされます。これは,CPPに渡される時に,常にCYYMMDDの形式で渡されます。ここで,C =世紀,YY =年,MM =月,およびDD =日です。世紀桁は,年が19XXである場合には0(ゼロ)に,年が20XXである場合には1に設定されます。このELEMステートメントに日付の値を指定する時には,引用符なしの次の形式の1つで指定しなければなりません。MMDDYY,MMDDYYYY,またはCYYMMDDです。コマンドの実行時にユーザーが日付を入力する場合には,ジョブ日付の形式で指定しなければなりません。日付を入力する時は,ジョブ日付区切り文字を使用することができます。区切り文字を使用する場合には,日付をアポストロフィで囲む必要があります。
*TIME
リスト項目は時刻を表す文字ストリングです。これは,HHMMSSとして6バイトの文字ストリングでコマンド処理プログラムに渡されます。ここで,HH =時,MM =分,およびSS =秒です。このステートメントに指定する値はHHMMSSの形式でなければなりません。コマンドの実行時にユーザーが時刻を入力する場合には,HHMMSSの形式で指定しなければなりません。時刻を入力する場合には,ジョブ時刻区切り記号を使用することができます。区切り文字を使用する場合には,時刻をアポストロフィで囲む必要があります。
*HEX
リスト項目値は16進形式です。指定する文字は0からFでなければなりません。これらの文字は16進(EBCDIC)文字(1バイトが2桁の16進数字)に変換され,右寄せにされ,ゼロが埋め込まれます。値をアポストロフィで囲んだ場合には,偶数桁が必要です。アポストロフィで囲まない場合には,桁数は奇数でも偶数でもかまいません。
*ZEROELEM
リスト項目は常に,コマンドで値を指定できないゼロ要素のリストと見なされます。これは,CPPが値を必要としていても,リストである要素に値が入力されないようにするために使用されます。*ZEROELEMの指定された要素についてはプロンプトは表示されません。パラメーター中のその他の要素はプロンプトが表示され,リストとしてCPPに渡されます。
*X
(弊社提供コマンドの場合)リスト項目値は,文字ストリング,変数名,または数値です。値に数字,+または-符号,あるいは小数点だけが入っている場合には,値は数字として渡され,そうでない場合には,文字ストリングとして渡されます。
*INT2
リスト項目は2バイトの符号付き2進数として渡される整数です。
*INT4
リスト項目は4バイトの符号付き2進数として渡される整数です。
*UINT2
リスト項目は2バイトの符号なし2進数として渡される整数です。
*UINT4
リスト項目は4バイトの符号なし2進数として渡される整数です。
*VARNAME
(弊社提供コマンドの場合)リスト項目値は文字ストリングとして渡されるCL変数名です。
ステートメント・ラベル
リスト項目には,修飾リスト名または値の混合リストを使用することができます。TYPEパラメーターによってここで指定するステートメント・ラベルは,定義中の修飾リスト名または混合リストをより詳しく記述する一連のQUALまたはELEMステートメントの最初のものを識別するステートメント・ラベルです。このラベルは,このリストに対するPARMステートメントの値のタイプ (TYPE)パラメーターのステートメント・ラベルによって指定するラベルと同じでなければなりません。

値の長さ (LEN)

コマンド処理プログラム(CPP)に渡されるリスト項目値の長さを指定します。値のタイプ (TYPE)パラメーターに指定される値に従って,LENパラメーターには最大3つの長さの値を指定できます。

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             |
------------------------------------------------

定数値 (CONSTANT)

定義中のコマンドの処理時にリスト項目の値が定数としてCPPに渡されることを指定します。この要素は外面的にはコマンド上に現れません。指定する場合には,値は次のパラメーターによって指定された要件を満たすものでなければなりません。

このパラメーターに文字定数を指定する場合には,32バイトより長くすることはできません。次の場合には,このパラメーターは無効です。

定義中の要素に定数を指定する場合には,プロンプト・テキスト/MSG ID (PROMPT)パラメーターにプロンプト・テキストを指定することはできません。ただし,その場合でも,(このリスト項目がその一部である)リスト・パラメーターのその他の要素についてはプロンプトが出され,それらの要素の値はこの定数値と一緒にリストとしてCPPに渡されます。

このパラメーターには変数をコーディングすることはできません。

制約された値 (RSTD)

リスト項目(ELEMステートメントで指定)に入力する値を有効な値 (VALUES)パラメーター,特殊値(SPCVAL)パラメーター,または単一値 (SNGVAL)パラメーターで指定する値の1つだけに限定するかどうか,あるいは次のパラメーターによって指定される要件を満たす値ならどんな値でもよいかどうかを指定します。

*NO
このELEMステートメントによって定義されたリスト項目に入力する値は,次のパラメーターによって指定される要件に合ったものであればどんな値でもかまいません。
  • 値のタイプ (TYPEパラメーター)
  • 値の長さ (LENパラメーター)
  • 比較式 (RELパラメーター)
  • 値の範囲 (RANGEパラメーター)
  • 特殊値 (SPCVALパラメーター)
  • 単一値 (SNGVALパラメーター)
  • 全桁入力必須 (FULLパラメーター)
*YES
このELEMステートメントのリスト項目に入力される値は,有効な値 (VALUES)パラメーターの値の1つ,または特殊値(SPCVAL)パラメーターの比較値の1つ,または単一値 (SNGVAL)パラメーターに限定されます。値のタイプ (TYPE)パラメーターでステートメント・ラベルまたは*ZEROELEMを指定する場合には,*YESを指定することはできません。

省略時の値 (DFT)

ユーザーが値を指定しない場合にリスト項目に割り当てられる省略時の値を指定します。すなわち,この省略時の値は,ユーザーがコマンドのコーディングまたは入力時に,このリスト項目を表すパラメーターを省略したか,あるいは要素に*Nを指定した場合に,このリスト項目の値として使用されます。省略時の値は,次のいずれかを満たすものでなければなりません。

このパラメーターが有効となるのは,許される最小値 (MIN)パラメーターが0(これはこのリストについてのこのELEMステートメントによって定義される要素が任意選択であることを意味します)の場合だけです。定数値 (CONSTANT)パラメーターを指定した場合には,このパラメーターを使用することはできません。また,値のタイプ (TYPE)パラメーターに*ZEROELEMを指定した場合には,省略時の値を指定することはできません。その場合には,システム想定の省略時の値が渡されます。

システム想定の省略時の値は,コマンド・プロンプトによって表示されません。かわりにブランクの入力フィールドが表示されます。このパラメーターに省略時の値を指定した場合には,指定通りにプロンプト機能によって表示されます。

指定した要件を満たす省略時の値,あるいは,有効な値 (VALUES)パラメーター,特殊値(SPCVAL)パラメーター,または単一値 (SNGVAL)パラメーターに指定した値の1つである省略時の値を指定してください。

この値には変数をコーディングすることはできません。

有効な値 (VALUES)

最大300個の定数(固定値)から成るリストを指定します。このリストからリスト項目の値として1つの定数を指定することができます。このパラメーターが有効なのは,次のすべての要件が満たされた場合だけです。

このパラメーターに指定する文字定数は,32バイトより長くすることはできません。リスト項目の値として指定できる定数(最大300個)を指定してください。TYPEパラメーターにステートメント・ラベルまたは*ZEROELEMを指定した場合には,このパラメーターは無効です。

このELEMステートメントが1つのリストの中の最初の要素を定義するものである場合には,このパラメーターに指定する値は,このELEMステートメントを指し示すPARMステートメントまたはELEMステートメントの単一値(SNGVAL)パラメーターに指定した値と同じであってはいけません。

比較式 (REL)

リスト項目値と別のパラメーターの値または定数との関係を指定します。参照されるキーワードと関連した値は,ユーザー指定の値ではなく,CPPに渡される値です。関係を指定するためには,次の比較演算子のどれかの後に,固定情報または他のパラメーターの値を入力してください。

*LT
より小さい
*LE
小さいか等しい
*EQ
等しい
*GE
大きいか等しい
*GT
より大きい
*NL
小さくない
*NE
等しくない
*NG
大きくない

値のタイプ (TYPE)パラメーターに*LGL, *VARNAME, *ZEROELEM,またはステートメント・ラベルを指定した場合,あるいは値の範囲 (RANGE)パラメーターまたは有効な値 (VALUES)パラメーターを指定した場合には,このパラメーターは無効です。値のタイプ (TYPE)パラメーターによって*CHAR(文字タイプ)を指定した場合には,文字ストリングのEBCDIC値は比較では符号のない整数として使用されます。このパラメーターに文字定数を指定する場合には,32バイトより長くすることはできません。

値の範囲 (RANGE)

リスト項目の値の範囲(下限および上限)を指定します。リスト項目の値は,指定された下限値以上で,指定された上限値以下でなければなりません。テストされる値は,ユーザー指定の値ではなく,CPPに送られる値です。

*CHARなどの非数字データ・タイプの場合には,値の範囲および指定されたデータは,右寄せにされ,左側にブランクを埋め込まれます。先行ゼロが指定されていないか,あるいはデータ長が1文字しかないかぎり,非数字データの間隔を定義するのに数値範囲は使用しないでください。

比較式 (REL)パラメーターまたは有効な値 (VALUES)パラメーターを指定した場合,あるいは値のタイプ(TYPE)パラメーターに*LGL, *VARNAME, *ZEROELEM,またはステートメント・ラベルを指定した場合には,このパラメーターは無効です。このパラメーターに指定する文字定数は,32バイトより長くすることはできません。

特殊値 (SPCVAL)

このELEMステートメントによって定義される要素に入力できる特殊値を定義する最大300個の項目からなるリストを指定します。各項目は,すべての妥当性検査の要件を満たしていなくても入力できる文字ストリング(比較値)を指定します。入力された文字ストリングが1つの項目の比較値に一致していて,置き換え値を指定した場合には,ストリングは置き換え値によって置き換えられてから,それ以上の検査なしにコマンド処理プログラム(CPP)に渡されます。置き換え値を省略した場合には,比較値がCPPに渡されます。値のタイプ (TYPE)パラメーターにステートメント・ラベルまたは*ZEROELEMを指定した場合には,このパラメーターは無効です。

*CURLIBの置き換え値が指定されている場合には,値*CURLIBではなく,現行ライブラリーの名前がCPPに渡されます。比較値が*CURLIBで,置き換え値を指定しなかった場合,あるいは置き換え値が*CURLIBで,アポストロフィで囲まれている場合には,値*CURLIBがCPPに渡されます。

比較値は文字ストリングですが,置き換え値は,渡すことができればどのようなものでもかまいません。ただし,値のタイプ (TYPE)パラメーターに*DATEを指定した場合には,置き換え値を引用符なしの次の形式の1つで指定しなければなりません。MMDDYY, MMDDYYYY, またはCYYMMDD。比較値にCL変数を使用する場合には,そのタイプは*CHARでなければなりません。このELEMステートメントがリスト中の最初の要素を定義している場合には,比較値に指定する値はこのELEMステートメントを指示するPARMまたはELEMステートメントのいずれかの単一値(SNGVAL)パラメーターに指定された値と同じにすることはできません。

置き換え値は,値の長さ (LEN)パラメーターに指定されたものより長くてはいけません。また,値のタイプ(TYPE)パラメーターに*DEC, *INT2, *INT4, *UINT2,または*UINT4を指定した場合には,置き換え値のタイプはそれと同じでなければいけません。値のタイプ (TYPE)パラメーターに文字タイプ(*CHAR, *LGL, *DATEなど)を指定した場合には,置き換え値は文字ストリングでなければなりません。このパラメーターに指定する文字定数は,32バイトより長くすることはできません。置き換え値を指定しない場合には,比較値は渡すことができる値でなければなりません。

この要素には変数をコーディングすることはできません。

単一値 (SNGVAL)

ステートメント・ラベルとして定義中の要素に指定できるか,あるいはネストされたリストに2つ以上のリスト項目(許される最大値(MAX)パラメーターで定義)をもつことになる単一値(最大300個)のリストを指定します。要素が受け入れるように定義されているネストされた値のリストまたは修飾名の代わりに,これらの単一値の1つを使用することができます。各項目は入力できる文字ストリング(比較値)を指定します。入力された文字ストリングが1つの項目の比較値に一致していて,置き換え値を指定した場合には,データは置き換え値によって置き換えられてから,それ以上の検査なしでコマンド処理プログラム(CPP)に渡されます。置き換え値を省略した場合には,比較値がCPPに渡されます。このELEMステートメントがリスト中の最初の要素を定義している場合には,比較値に指定する値はこのELEMステートメントを指示するPARMまたはELEMステートメントのいずれかの単一値(SNGVAL)パラメーターに指定された値と同じにすることはできません。

置き換え値(置き換え値を省略した場合には比較値)は,特殊値 (SPCVAL)パラメーターに指定された通りに渡すことができるものでなければなりません。このパラメーターに指定する文字定数は,32バイトより長くすることはできません。このパラメーターを指定できるのは,許される最大値 (MAX)パラメーターが1より大きい場合,または値のタイプ(TYPE)パラメーターにステートメント・ラベルが指定されている場合だけです。値のタイプ (TYPE)パラメーターに*ZEROELEMが指定されている場合には,このパラメーターは無効です。各単一値は値のリストまたは修飾名と置き換わることができるだけで,リスト項目または修飾子とすることはできません。単一値はリストの最初の要素として渡されます。

*CURLIBの置き換え値が指定されている場合には,値*CURLIBではなく,現行ライブラリーの名前がCPPに渡されます。比較値が*CURLIBで,置き換え値を指定しなかった場合,あるいは置き換え値が*CURLIBで,アポストロフィで囲まれている場合には,値*CURLIBがCPPに渡されます。

この要素には変数をコーディングすることはできません。

許される最小値 (MIN)

定義中の要素について入力しなければならない値の最小数を指定します。複数の類似値を指定できない要素については,任意指定の場合は0,必須の場合は1を,値の最小数として指定することができます。

複数の類似値を使用できる要素の場合には,許される最大値(MAX)パラメーターに1より大きい値を指定しているので,ゼロ(0)は,値を入力する必要がないということを示します。したがって,これはオプションの要素です。1以上の値は,要素に入力しなければならない値の最小数を示します。したがって,要素が必要です。このパラメーターに指定する値は,許される最大値 (MAX)パラメーターに指定する値を超えることはできません。指定された数は別のリストで必要なリスト項目の数を示します。このパラメーターを指定しない場合には,ゼロ(0)と見なされます。これは要素が任意指定であることを意味します。

0
リスト項目は任意指定であり,入力しなくてもかまいません。
最小数
ネストされたリストの中で指定しなければならない要素の最小数を指定してください。この値として1を割り当てた場合には,それは,その要素について値が1つは必要であるということを示します。1より大きい数を指定した場合には,その要素には,少なくとも指定した数だけの要素のリストが入ります。

許される最大値 (MAX)

このELEMステートメントが単純リスト項目を定義する場合に,このリスト項目のネストされたリストに入れることができる要素の最大数を指定します。1より大きい値を指定した場合には,要素は複数の類似の値(すなわち,ネストされた単純リスト)を受け入れることができます。この要素に対して(コマンドの実行時に)入力されるすべての値は,このELEMステートメントの他のパラメーター値で指定される妥当性検査要件を満たさなければなりません。

注: ネストされたリストの値は,ユーザーがリスト項目に入力した値の数を示す2バイトの2進値を先頭にして,連続的に渡されます。CLプログラムでは,変数の中での2進数値の取り扱いはサポートされていません。

1
リスト項目は値を1つしか受け入れません。したがって,ネストされたリストはありません。
最大数
リスト項目が受け入れることのできる要素の最大数を指定してください。指定する最大値は,許される最小値 (MIN)パラメーターで指定された値以上,300以下でなければなりません。最大値が1より大きく,QUALステートメントまたは別のELEMステートメントを識別するステートメント・ラベルが値のタイプ(TYPE)パラメーターに指定されていない場合には,パラメーター(これも要素です)は類似の値の単純リストです(すなわち,リストの各要素はタイプや長さなど同じ要件をもちます)。値のタイプ (TYPE)パラメーターにステートメント・ラベルが指定されていて,しかもそのラベルがQUALステートメントまたは別のELEMステートメントのラベルを指している場合には,リストのリストまたは修飾名のリストを受け入れる場合にだけ,このパラメーターに1より大きい値を指定するようにしてください。定数値 (CONSTANT)パラメーターも指定されている場合には,1より大きい最大値は無効です。

印刷不能文字使用可能 (ALWUNPRT)

このELEMステートメントが16進値のX'FF'およびX'00'からX'3F'の範囲の16進値を受け入れるかどうかを指定します。このパラメーターが有効なのは,値のタイプ (TYPE)パラメーターに*CHARまたは*Xを指定した場合だけです。

*YES
表示装置または印刷装置にどのような16進値でも送ることができます。
*NO
印刷不能文字をコマンド処理プログラムに渡すことはできません。

変数名使用可能 (ALWVAR)

要素に変数名を指定できるかどうかを指定します。値のタイプ (TYPE)パラメーターに*VARNAME, *ZEROELEM, *NULL,またはステートメント・ラベルを指定した場合には,*NOを指定することはできません。

*YES
変数名を要素として使用することができます。
*NO
変数名を要素として使用することはできません。

ELEMはプログラムである (PGM)

この要素がプログラム名であるかどうかを指定します。*YESが有効となるのは,値のタイプ (TYPE)パラメーターにステートメント・ラベル,*CHAR, *NAME, *SNAME, *CNAME,または*GENERICを指定した場合だけです。このパラメーターに*YESを指定しても,ELEMステートメントによって定義している要素には影響はなく,この要素の値がプログラム名であることをコンパイラーに示すだけです。この情報は,プログラム参照表示(DSPPGMREF)コマンドの出力に含めることができるように記憶されます。

*NO
要素(このELEMステートメントで定義中の)はプログラム名ではありません。
*YES
この要素はプログラム名です。

ELEMはデータ域である (DTAARA)

この要素がデータ域名であるかどうかを指定します。*YESが有効となるのは,値のタイプ (TYPE)パラメーターにステートメント・ラベル,*CHAR, *NAME, *SNAME, *CNAME,または*GENERICを指定した場合だけです。このパラメーターに*YESを指定しても,ELEMステートメントによって定義している要素には影響はなく,この要素の値がデータ域名であることをコンパイラーに示すだけです。この情報は,プログラム参照表示(DSPPGMREF)コマンドの出力に含めることができるように記憶されます。

*NO
要素(このELEMステートメントで定義中の)はデータ域名ではありません。
*YES
この要素はデータ域名です。

ファイル・パラメーターの場合の使用法 (FILE)

リスト項目がファイル名であるかどうか,またそうである場合にはファイルの予定されている用途を指定します。コンパイル時にファイルの名前を使用してファイルの使用状況に関するファイル参照情報を入手できるように,特定の用途をもつファイルの名前として要素を使用することができます。このパラメーターが有効なのは,値のタイプ (TYPE)パラメーターにステートメント・ラベル,*CHAR, *NAME, *SNAME, *CNAME,または*GENERIC値を指定した場合だけです。このパラメーターに指定しても,ELEMステートメントによって定義しているリスト項目に影響しません。単にこの要素の値がファイル名であること,およびそのファイルのタイプをコンパイラーに示すだけです。この情報は,DSPPGMREF(プログラム参照表示)コマンドの出力に含めることができるように,記憶されます。次のファイル・タイプの1つを指定することができます。

*NO
リスト項目(このELEMステートメントで定義中の)はファイル名ではありません。
*IN
リスト項目は入力ファイル名です。
*OUT
リスト項目は出力ファイル名です。
*UPD
リスト項目は更新ファイル名です。
*INOUT
リスト項目値は,入力と出力の両方に使用されるファイルの名前です。
*UNSPFD
リスト項目値はファイルの名前ですが,その用途を指定することはできません。

全桁入力必須 (FULL)

リスト項目のバイト数が値の長さ (LEN)パラメーターで指定された数(指定された場合)あるいは省略時の長さ(LENが指定されない場合)と正確に同じでなければならないかどうかを指定します。

*NO
リスト項目値のバイト数をLENパラメーターで指定されたバイト数より少なくすることができます。
*YES
リスト項目値のバイト数は,LENパラメーターに指定した数に等しいか,その値の省略時の長さでなければなりません。正確な長さが有効なのは,値のタイプ (TYPE)パラメーターのタイプが*LGL, *CHAR, *NAME, *SNAME, *CNAME, *GENERIC, *VARNAME,および*HEXの場合だけです。

式の評価 (EXPR)

要素が文字連結のある式を受け入れることができるかどうかを指定します。

*NO
要素の値として連結式を使用することはできません。
*YES
要素の値として連結式を使用することができます。定数値 (CONSTANT)パラメーターに値を指定した場合には,*YESは無効です。

可変の長さ (VARY)

CPPに渡されるリスト項目値の前に,要素の値として入力されたバイト数を示す長さ値が先行するかどうかを指定します。

単一値

*NO
要素値の前に桁数値を付けません。

要素1: 長さ値の戻し

*YES
CPPに渡される要素の値の前に,パラメーターに実際に指定されたバイト数を示すフィールドが先行します。*YESを使用できるのは,次のパラメーター・タイプの場合だけです。*CHAR, *NAME, *SNAME, *CNAME, *PNAME, *GENERIC, *LGL,および*VARNAME。PASSATR(*YES)およびRTNVAL(*YES)が指定されている場合には,*YESを指定しなければなりません。

注: 長さの値は,リスト項目に入力され,後書きブランクを除去した実際のバイト数です。渡される長さの値は,定義されたパラメーターの長さまたは宣言された変数の長さと異なることがあります。文字ストリング・データが入っているフィールドの長さは,パラメーターについて定義された長さまたはCL変数について宣言されたLENによって決定されます。長さの値は,実際にコマンド・パラメーターに入力された文字ストリング・データ・フィールド中のバイトの数を定義します。TYPEパラメーターに*PNAMEまたは*CHARを指定し,また値のCCSID (CCSID)パラメーターに*UTF16を指定すると,コマンド処理プログラムに受け渡された長さの値は,要素値のバイトの数を表します。この数は,値の長さ (LEN)パラメーターに指定した数の2倍が最大です。これは要素値がUTF16形式に変換され,UTF16文字のほとんどで2バイトが必要となるためです。UTF16形式での値の処理に関する詳細については,CCSIDおよびLENパラメーターの説明を参照してください。

要素2: 値の長さ

*INT2
要素の長さの値は,2バイトの符号付き2進数として渡される整数です。
*INT4
要素の長さの値は,4バイトの符号付き2進数として渡される整数です。

属性バイト受け渡し (PASSATR)

リスト項目データとともに属性バイトがコマンド処理プログラム(CPP)に渡されるかどうかを指定します。値のタイプ (TYPE)パラメーターにステートメント・ラベルまたは*ZEROELEMを指定した場合には,このパラメーターは無効です。

属性バイトは,リスト項目データの前に置かれます。リスト項目で複数の値を指定できる場合には,それぞれの値の前に属性バイトが置かれます。

*NO
属性バイトはリスト項目と一緒に渡されません。
*YES
リスト項目と一緒に属性バイトが渡されます。

属性バイトには次の2つのフィールドがあります。

  1. 属性バイトの左端のビットは,値が指定されたかどうかを示します。左端のビットが'0'Bである場合は,コマンド処理プログラムに渡される値は省略時の値で,コマンド・ストリングには指定されていません。左端のビットが'1'Bである場合は,コマンド処理プログラムに渡される値はコマンド・ストリングに指定されています。
  2. 値のタイプ (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など)
    

値のケース (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)パラメーターの説明を参照してください。

画面入力 (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...
    

*NONE
値は表示されません。
*PGM
呼び出されるプログラムが表示する値を決定します。呼び出されるプログラムはPARMステートメントのプログラム選択 (CHOICEPGM)パラメーターで識別されます。
メッセージID
使用できる値フィールドのテキストが入っているメッセージの検索に使用されるメッセージのメッセージIDを指定します。コマンド作成(CRTCMD)コマンドの プロンプト・テキストメッセージ・ファイル (PMTFILE)パラメーターに指定されたメッセージ・ファイルは,メッセージの検索に使用されます。
'選択項目テキスト'
30文字以内をアポストロフィで囲んで指定してください。

プログラム選択 (CHOICEPGM)

可能な選択項目テキストおよび許される値を入力するためにコマンド・プロンプトが出されている間に,呼び出するプログラムを指定します。テキスト選択 (CHOICE)パラメーターに*PGMを指定した場合には,このパラメーターを指定しなければなりません。そうでない場合には,指定することはできません。

単一値

*NONE
選択可能項目テキストおよび指定可能な値を表示するために使用するプログラムはありません。

修飾子1: プログラム選択

名前
選択可能項目テキストまたは指定可能な値を表示するためにプロンプト表示中に呼び出すプログラムの名前を指定します。プログラムが呼び出される時に例外が起こった場合には,選択可能項目テキストはブランクのままになり,指定可能値のリストはコマンドから取得されます。

修飾子2: ライブラリー

*LIBL
最初に一致するものが見つかるまで,現行スレッドのライブラリー・リスト内のすべてのライブラリーが検索されます。
*CURLIB
プログラムを見つけるために,ジョブの現行ライブラリーが使用されます。ジョブの現行ライブラリーとして指定されているライブラリーがない場合は,QGPLが使用されます。
名前
プログラムが入っているライブラリーの名前を指定してください。

初期プロンプト長 (INLPMTLEN)

コマンドのプロンプトが出された時に要素に対して最初に表示される入力フィールドの長さを指定します。ユーザーは,このフィールドの先頭位置にアンパーサンド(&)を入力することによって(次の桁はブランクにする),このフィールドを最大長の512バイトまで拡張することができます。INLPMTLENは,TYPEが*CHAR, *NAME, *SNAME, *CNAME, *PNAME, *GENERIC,または*HEXと指定された場合にのみ有効です。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です。

プロンプト・テキスト/MSG ID (PROMPT)

リスト項目(このELEMステートメントで定義)に使用されるプロンプト・テキストがある場合には,そのテキストを指定します。プロンプト・テキストには,コマンドのプロンプトが出されるときに要素入力フィールドの横に現れる要素の簡略説明が表示されます。値のタイプ (TYPE)パラメーターに*ZEROELEMを指定した場合,または定数値 (CONSTANT)パラメーターに定数値を指定した場合には,プロンプト・テキストを指定することはできません。

*NONE
このELEMステートメントによって定義されたリスト項目についてプロンプト・テキストは表示されません。このリスト項目のプロンプトは入力フィールドの形で出されますが,入力フィールドと一緒にテキストは表示されません。
メッセージID
メッセージIDを指定し,これは,プログラムでリスト項目のプロンプトを出す時に表示される最大30バイトのプロンプト・テキストを含むメッセージを識別します。指定されたIDをもつメッセージをコマンド作成(CRTCMD)コマンドの プロンプト・テキストメッセージ・ファイル (PMTFILE)パラメーターに指定されたメッセージ・ファイルに見つけることができない場合には,メッセージIDそのものがプロンプト・テキストとして使用されます。
'プロンプト・テキスト'
プログラムがリスト項目のプロンプトを出している時に表示されるプロンプト・テキストを指定してください。このテキストは,アポストロフィで囲んだ30バイト以内の文字ストリングでなければなりません。

1:異なる2タイプの要素を指定したパラメーターの定義

       PARM   KWD(JOBDESC)  TYPE(L1)  MIN(1)
L1:    ELEM   TYPE(*NAME)  LEN(10)  MIN(1)
       ELEM   TYPE(*DEC)  LEN(2)  MIN(1)  REL(*LE 60)

JOBDESCという名前のパラメーターが必要であり,両方とも指定する必要がある2つの要素があります。最初の要素は10文字の名前であり,2番目の要素は60以下の2桁の数値です。

2:類似の要素を指定したパラメーターの定義

       PARM   KWD(RANGE)  TYPE(L1) MIN( DFT(*SAME) +
              SNGVAL((*SAME 101))
L1:    ELEM   TYPE(*DEC)  MIN(1)  REL(*LE 100)
       ELEM   TYPE(*DEC)  MIN(1)  REL(*LE 100)

RANGEという名前のパラメーターは省略できますが,存在する場合は,どちらも100より大きくはできない2つの数値のリストとする必要があります。コマンド処理プログラムが受け渡しされた値はユーザー指定の値であるか,*SAMEプログラムであるかどうかを判別するには,*SAMEは検査対象の値の正常範囲の外側である101にマップされます。

エラー・メッセージ

なし