%ABORT Statement

Stops the macro that is executing along with the current DATA step, SAS job, or SAS session.
Type: Macro statement
Restriction: Allowed in macro definitions only

Syntax

%ABORT <ABEND | CANCEL <FILE> | RETURN | <n> > ;

Required Arguments

ABEND
causes abnormal termination of the current macro and SAS job or session. Results depend on the method of operation:
  • batch mode and noninteractive mode.
    • stops processing immediately.
    • sends an error message to the SAS log that states that execution was terminated by the ABEND option of the %ABORT macro statement
    • does not execute any subsequent statements or check syntax
    • returns control to the operating environment. Further action is based on how your operating environment and your site treat jobs that end abnormally.
  • windowing environment and interactive line mode.
    • causes your macro, windowing environment, and interactive line mode to stop processing immediately and return you to your operating environment.
CANCEL <FILE>
causes the cancellation of the current submitted statements. The results depend on the method of operation.
If the method of operation is batch mode and noninteractive mode, use the CANCEL option to do the following:
  • The entire SAS program and SAS system are terminated.
  • The error message is written to the SAS log.
If the method of operation is windowing environment and interactive line mode, use the CANCEL option to do the following:
  • It only clears the current submitted program.
  • Other subsequent submitted programs are not affected.
  • The error message is written to the SAS log.
If the method of operation is workspace server and stored process server, use the CANCEL option to do the following:
  • It only clears currently submitted program.
  • Other subsequent submit calls are not affected.
  • The error message is written to the SAS log.
If the method of operation is SAS IntrNet application server, use the CANCEL option to do the following:
  • A separate execution is created for each request. The execution submits the request code. A CANCEL in the request code clears the current submitted code but does not terminate the execution or the SAS session.
FILE
when coded as an option to the CANCEL argument in an autoexec file or in a %INCLUDE file, causes only the contents of the autoexec file or %INCLUDE file to be cleared by the %ABORT statement. Other submitted source statements will be executed after the autoexec or %INCLUDE file.
Restriction:The CANCEL argument cannot be submitted using SAS/SHARE,SAS/CONNECT, or SAS/AF.
CAUTION:
When %ABORT CANCEL FILE option is executed within a %INCLUDE file, all open macros are closed and execution resumes at the next source line of code.
RETURN
causes abnormal termination of the current macro and SAS job or session. Results depend on the method of operation:
  • batch mode and noninteractive mode
    • stops processing immediately
    • sends an error message to the SAS log that states that execution was terminated by the RETURN option of the %ABORT macro statement
    • does not execute any subsequent statements or check syntax
    • returns control to the operating environment with a condition code indicating an error
  • windowing environment and interactive line mode
    • causes your macro, windowing environment, and interactive line mode to stop processing immediately and return you to your operating environment
n
an integer value that enables you to specify a condition code:
  • When used with the CANCEL argument, the value is placed in the SYSINFO automatic macro variable.
  • When it is NOT used with the CANCEL statement, SAS returns the value to the operating environment when the execution stops. The range of values for n depends on your operating environment.

Details

If you specify no argument, the %ABORT macro statement produces these results under the following methods of operation:
  • batch mode and noninteractive mode.
    • stops processing the current macro and DATA step and writes an error message to the SAS log. Data sets can contain an incomplete number of observations or no observations, depending on when SAS encountered the %ABORT macro statement.
    • sets the OBS= system option to 0.
    • continues limited processing of the remainder of the SAS job, including executing macro statements, executing system option statements, and syntax checking of program statements.
  • windowing environment
    • stops processing the current macro and DATA step
    • creates a data set that contains the observations that are processed before the %ABORT macro statement is encountered
    • prints a message to the log that an %ABORT macro statement terminated the DATA step
  • interactive line mode
    • stops processing the current macro and DATA step. Any further DATA steps or procedures execute normally.

Comparisons

The %ABORT macro statement causes SAS to stop processing the current macro and DATA step. What happens next depends on
  • the method that you use to submit your SAS statements
  • the arguments that you use with %ABORT
  • your operating environment
The %ABORT macro statement usually appears in a clause of an %IF-%THEN macro statement that is designed to stop processing when an error condition occurs.
Note: The return code generated by the %ABORT macro statement is ignored by SAS if the system option ERRORABEND is in effect.
Note: When you execute an %ABORT macro statement in a DATA step, SAS does not use data sets that were created in the step to replace existing data sets with the same name.