Easytrieve Plus : EOF時の処理方法は?

book

Article ID: 185554

calendar_today

Updated On:

Products

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

Issue/Introduction

Question
EOF時の処理方法は?

Environment

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

Resolution

Answer
ファイルを自動入力している時にはプロシジャーを指定して行います。自動入力を行っていない時にはEOFを判断して行います。
Easytrieve Plusは、自動入力ファイルの1件目から順にJOBアクティビティの処理を行います。自動入力ファイルがEOFになった時に、自動的にEOFを判定し終了処理を行います。この終了処理の中に任意の処理を追加したい時は FINISH プロシジャーを使用します。自動入力をしない時には、ロジックでEOFの判断をして処理します。

[FINISHプロシジャーの記述]
JOB FINISH プロシジャー名
....
....  (省略)
....
プロシジャー名. PROC
EOF時の処理ステートメント

....
END-PROC

[EOFを判断する記述]
IF EOF ファイル名

注意
1. FINISHプロシジャー内では自動入力データに対する処理はできません。参照する必要がある場合はFILEステートメントに WORKAREA パラメータを指定します。
2. JOBアクティビティは、EOF時には処理が行われません。 すなわち、 レコ-ド件数 = JOBアクティビティ実行回数となります。


記述例
(例1) EOF時にメッセージを出力する(自動入力をする場合)
FILE FILEA
 ~
JOB FINISH LAST
 ~
LAST. PROC
    DISPLAY '************'
    DISPLAY '* 処理終了 *'
    DISPLAY '************'
END-PROC

(例2) EOF時にメッセージを出力する(自動入力をしない場合)
FILE FILEA

JOB INPUT NULL
    GET FILEA
    IF EOF FILEA
        DISPLAY '************'
        DISPLAY '* 処理終了 *'
        DISPLAY '************'
        STOP
    END-IF


注意
INPUTに NULL を指定した時(ファイルの自動入力を行わない時)は、処理の最後に必ず STOP を記述します。

Additional Information

Old Japanese Knowledge document ID: JTEC000994