Easytrieve Plus : キー・ブレイクを簡単に判断できるか? 単一ファイルでのキーの重複チェックは行えるか?

book

Article ID: 185719

calendar_today

Updated On:

Products

EASYPROCLIB CA Easytrieve Report Generator CA Easytrieve Report Generator for Common Services

Issue/Introduction

Question
キー・ブレイクを簡単に判断できるか?
単一ファイルでのキーの重複チェックは行えるか?

Environment

z/OS, MSP, VOS3, IBM, FUJITSU, HITACHI

Resolution

Answer
キー・ブレイクを判断するキーワードを使用します。
マッチング・ファイル処理で使用するキーの重複を判断するIFステートメントを使用します。この機能では、単一ファイル処理においても、あるレコードのキーフィールドの内容と次のレコードのキーフィールドの関係を判定することができます。

[キー・ブレイクを判断するIFステートメントの記述]
IF    [NOT]  DUPLICATE     ファイル名
        FIRST-DUP
        LAST-DUP

※DUPLICATE : キーが重複しているかどうか判断
   FIRST-DUP : キーの重複の1件目かどうか判断
   LAST-DUP : キーの重複の最後かどうか判断
   ファイル名 : 対象ファイルを指定


単一ファイルにおいて上記のIFステートメントを使用する場合、JOBステートメントでの入力ファイルの指定は以下のとおりです。
[JOB INPUTステートメントの記述]
JOB    INPUT    ( ファイル名   KEY   ( キー・フィールド名-1      キー・フィールド名-2     ....      キー・フィールド名-n ))

注意 この機能はバージョン6.0から使用可能です。バージョン5以下では、使用できませんのでダミーマッチングで対応します。

記述例
(例) 新しいキーの始まりを判断する

FILE     FILEA
CODE      1      3      A

FILE    MASTER    VS
MCODE      1      3      A
NAME         5    15      A
*
W-NAME      W     15      A      RESET
*
JOB    INPUT    (FILEA    KEY(CODE))
IF   FIRST-DUP   FILEA   OR   NOT   DUPLICATE    FILEA
    READ MASTER KEY CODE STATUS
    IF MASTER:FILE-STATUS ZERO
        W-NAME = NAME
    END-IF
END-IF
PRINT


※この例では、キーが重複していないレコード( NOT DUPLICATE )か、重複している場合には1件目のレコード ( FIRST-DUP )がIFステートメントを満足します。

Additional Information

Old Japanese Knowledge document ID: JTEC000998