EOF時の処理方法は?

Document created by Masaaki_Iyama Employee on Jun 19, 2015
Version 1Show Document
  • View in full screen mode

文書番号: JTEC000994

製品名: CA-Easytrieve Plus

バージョン: ALL

OS: z/OS, MSP, VOS3

 

Question

EOF時の処理方法は?

 

Answer

ファイルを自動入力している時にはプロシジャーを指定して行います。自動入力を行っていない時にはEOFを判断して行います。

EASYPLUSは、自動入力ファイルの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 を記述します。

 

Attachments

    Outcomes