Обработка кода состояния VSAM 35 в JCL

Моя программа COBOL считывает файл VSAM, который может быть или не быть пустым. Когда файл пуст, я получаю код состояния 35 при открытии в режиме INPUT/IO. Я не хочу обрабатывать это в программе, но в JCL. Есть ли способ проверить файл VSAM, если он пустой или нет... если это невозможно с помощью JCL, то можем ли мы обработать его в программе, не проверяя код состояния 35?

3 ответа

Кажется, я припоминаю, что вы могли бы использовать IDCAMS для репо файла в фиктивный набор данных, и вы бы получили RC=4, если бы он был пуст.

Это по памяти несколько лет назад, но тогда вы могли поместить эту проверку в свой поток заданий перед запуском своей программы и контролировать выполнение следующего шага, используя код возврата IDCAMS.

Когда вы получите звезду "35", выйдите из программы с

MOVE 8 TO RETURN-CODE.
GOBACK.

[пример здесь][1]

http://ibmmainframes.com/about60344.html

Затем вы можете проверить ненулевой код возврата в вашем JCL с помощью COND=8 на следующем шаге, который будет выполняться только тогда, когда ваша программа обнаружит пустой файл.

Добавьте НЕОБЯЗАТЕЛЬНО к предложению SELECT в абзаце FILE-CONTROL.

SELECT OPTIONAL fdname
    ASSIGN TO ddname
    ...
Другие вопросы по тегам