CMP_TIME

1. CMP_TIME syntax – with template

1 CMP_TIME(
2.1 #nn(subscript)
2.1 fieldname(subscript)? ,imask? ,omask
1! ‘EQ’
1 ‘operator’
2 ,
2 + , value
2 ?,tally_literal)
2. CMP_TIME syntax – without template

1 CMP_TIME(start, length, type, imask,  omask
1! ‘EQ’
1 ‘operator’
2 ,
2 + , value
2 ?,tally_literal)

(FASTREXX 条件式で使用できます。)

CMP_TIME は、テンプレートを使用して、またはテンプレートなしで実行できるブール関数です。これにより、フィールド内の時刻値に対して条件付きテストを実行できます。

注:
  1. このフィールドがテンプレート内の日時フィールドとして定義されている場合は、imask および omaskFile Manager によってテンプレートから取得されるため、これらの値を指定する必要はありません。
  2. フィールド名 (fieldname)、フィールド参照 (#nn)、演算子 (operator)、および非数値の値はすべて引用符で囲み、構文エラーにならないようにする必要があります。
  3. 最後に指定された引数の後のコンマは省略可能です。
#nn または fieldname
#nn
テンプレートの編集時に、フリー・フォーマットの基準を指定してある場合に、この形式を使用します。nn は、テンプレートの編集時に表示されたフィールド参照番号です。テンプレートの編集時に基準を指定してある場合は、フィールド参照として fieldname を 使用することは無効です。
fieldname
ユーザー・プロシージャーをコーディングする場合に、この形式を使用してフィールドを識別します。名前が固有でない場合は、groupname.dataname という形式を使用して名前を指定できます。名前の突き合わせでは、大/小文字が区別されません。名前を修飾しなかった場合は、最初に出現する名前が使用されます。ユーザー・プロシージャーでは値 #nn をコーディングしないでください。 ユーザー・プロシージャーから実行された場合は、表示されるフィールド参照値が、正しいフィールドを識別しないためです。
下付き
次元フィールドのみに適用されます。以下のいずれかの形式を指定できます。
(ANY)
これが、次元フィールドに添字を指定しなかった場合のデフォルトです。関連する配列の 1 つ以上のエレメントが条件を満たす場合に、結果が真になることを示します。
(ALL)
関連する配列の全エレメントが条件を満たす場合に、結果が真になることを示します。
(nn)
この形式では、単一の配列エレメントを指します。その次元フィールドに対応する有効な添字を指定する必要があります。
start
フィールド値の読み取りを開始する入力レコード内の位置 (バイト単位)。以下のように指定できます。
絶対位置
正の整数である必要があります。デフォルト値は 1 です。start が入力レコードの現在の長さより大きければ、この関数は無効になります。
現行 INPOS からの相対位置
IPx または INx、または Px または Nx として指定できます。結果の値がゼロ以下になる場合、または入力レコードの現在の長さより大きくなる場合、この関数は無効になります。
現行 OUTPOS からの相対位置
OPx または ONx として指定する必要があります。結果の値がゼロ以下になる場合、または入力レコードの現在の長さより大きくなる場合、この関数は無効になります。
length
フィールドの長さ (バイト数)。

2 進数フィールドの場合、長さを省略するか、4 を指定します。

パック 10 進フィールドでは、長さを指定する場合には 1 から 16 の範囲内でなければなりません。長さを省略すると、CMP_TIME はレコード・データからパック・フィールドの長さを決定して、そのフィールドだけを戻します。

ゾーン 10 進数フィールドの場合、長さは 1 から 32 の範囲でなければなりません。

type
フィールドのデータ・タイプ。有効な値は、以下のとおりです。
B
2 進数。
C
文字。これは、デフォルトです。
P
パック 10 進数。
B
ゾーン 10 進数。
imask
フィールドに日付を保管するために使用されるフォーマットを定義する値またはピクチャー・ストリング。ピクチャー・ストリングの場合、File Manager では、「z/OS® Language Environment® Programming Services」の付録 B『Date and time services tables』で説明されているすべてのピクチャーがサポートされます。

File Manager は、以下のいずれかの値の指定もサポートします。

CENTSECS
時刻 (100 分の 1 秒)。
MICSECS
時刻 (100 万分の 1 秒単位)
MILLSECS
時刻 (1000 分の 1 秒単位)

imask 値は File Manager で使用できなければなりません。テンプレートが使用され、imask が指定されていない場合、File Manager はテンプレートに保管された内部マスクを使用します。

omask
パラメーターとして CMP_TIME に渡される日付値に使用される形式を記述するピクチャー・ストリング。File Manager では、「z/OS® Language Environment® Programming Services」の付録 B『Date and time services tables』で説明されているすべてのピクチャーがサポートされます。

omask 値は File Manager で使用できなければなりません。テンプレートが使用され、omask が指定されていない場合、File Manager はテンプレートに保管された出力マスクを使用します。

オペレーター (operator)
デフォルトは EQ または = です。この機能では、動的テンプレートと基準編集で示した、すべての演算子をサポートしています。サポートする演算子の詳細と説明については、以下の節を参照してください。
値は、参照されている演算子とフィールドでのコンテキストで有効な値である必要があります。例えば、複数の値を使用できる演算子は、CO (包含) など一部の演算子のみです。値の形式は、omask で記述された日付形式に基づいて指定する必要があります。
tally_literal
CMP_TIME 関数からのすべての TRUE 結果の回数を示す TALLY レポートに表示するリテラルを指定します。

例 1

START-TIME 値が正午以降のレコードのみを処理します。


IF CMP_TIME('START-TIME',MILLSECS,'HH:MI:SS.999','GT','12:00:00.000')
THEN
  RETURN
ELSE
  RETURN 'DROP'