Errors that prevent execution, regardless of if statement tests

Certain error conditions prevent the system from executing the THEN or ELSE clauses of an IF/THEN/ELSE/ENDIF statement construct. When such an error condition occurs, the system does not execute the THEN or ELSE clause, regardless of any tests on the IF statement. These conditions are as follows:

Abnormal termination by the system: After certain types of abnormal termination by the system, remaining job steps are not executed, regardless of any tests for abnormal termination conditions. The completion codes associated with these types of abnormal termination are:
122
Operator canceled job
222
Operator or TSO/E user canceled job
You might encounter other system completion codes for which the THEN or ELSE clause is not executed, regardless of any tests for abnormal termination conditions. See z/OS MVS System Codes for further information about specific system completion codes.

When job time expires: The system abnormally terminates processing if a step has exceeded the time limit for the job. The specification of the IF/THEN/ELSE/ENDIF construct has no effect on this type of abnormal termination.

When a referenced data set is not complete: When a job step that contains the IF/THEN/ELSE/ENDIF statement construct references a data set that was to be created or cataloged in a preceding step, the data set
  • Will not exist if the step creating it was bypassed, or
  • May be incomplete if the step creating it abnormally terminated.
As a result, the system may be unable to execute the step.

When the program does not have control: For the system to act on the IF/THEN/ELSE/ENDIF statement construct, the step must abnormally terminate while the program has control. If a step abnormally terminates during scheduling, (due to failures such as JCL errors or the inability to allocate space), the system bypasses the remaining steps. The steps specified by the IF/THEN/ELSE/ENDIF statement construct do not execute.