Из документации ...
Используйте параметр COND для проверки кодов возврата из предыдущих этапов задания
и определите, нужно ли обойти этот шаг задания. Вы можете указать один или
больше тестов для параметра COND, и вы можете проверить коды возврата из
конкретные шаги работы или с каждого шага работы, который завершен
обработка. Если какое-либо из условий испытания удовлетворено, система
оценивает параметр COND как true и пропускает этап задания. Если
ни одно из условий испытаний, указанных в параметре COND, не является
удовлетворено, система оценивает параметр COND как ложный и
выполняет шаг задания.
Система выполняет проверку параметров COND на соответствие кодам возврата из
текущее исполнение задания. Если тест возвращает ранее
обойденный шаг, система оценивает тест как ложный.
Обратите внимание на текст, который я выделил курсивом. Поскольку «система оценивает тест как ложный», выполняется шаг задания. Другими словами, параметр COND оператора EXEC работает так, как задокументировано. Что касается , почему параметр был разработан для такой работы, я боюсь, что я не работал в этой области, когда он был изобретен около 40+ лет назад, и поэтому не могу говорить с рассуждениями оригинальных разработчиков ,
Возможно, вы захотите взглянуть на оператор IF , который предоставляет возможность тестирования, если заданный шаг был выполнен в дополнение к проверке его кода возврата.
//STEP01 EXEC
//CK01 IF STEP1.RC EQ 0 THEN
//STEP02 EXEC
//CK01E ENDIF
//CK02 IF STEP2.RUN & STEP2.RC EQ 0
//STEP03 EXEC
//CK02E ENDIF
в качестве альтернативы, вы можете кодировать ...
//STEP01 EXEC
//CK01 IF STEP1.RC EQ 0 THEN
//STEP02 EXEC
//CK02 IF STEP2.RC EQ 0
//STEP03 EXEC
//CK02E ENDIF
//CK01E ENDIF