Обработка кода состояния 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
...