CHECK ( ABAP Keyword) introduction & Details
CHECK – within loops
the subsequent logical expression . If it is true, the processing continues with
the next statement.
In loop structures like
WHILE … ENDWHILE
LOOP … ENDLOOP
CHECK with a negative outcome terminates the current loop
pass and goes back to the beginning of the loop to start the next pass, if there
In structures like
FORM … ENDFORM
MODULE … ENDMODULE
CHECK with a negative
outcome terminates the routine or modularization unit.
If CHECK is not in
a loop or a routine or a modularization unit, a negative logical expression
terminates the current event. In contrast, the statement REJECT terminates the
current event, even from loops or subroutines.
If a CHECK
produces a negative result in a GET event , the GET events in subordinate tables
of the logical database are not processed either.
Related CONTINUE , EXIT ,
REJECT , STOP
CHECK – special for reports with logical databases
1. CHECK sel.
selection criterion requested by the statement SELECT-OPTIONS sel …
This statement is equivalent to f IN sel , if sel was defined by
SELECT-OPTIONS sel FOR f and can be used anywhere in logical
If the result of this check is negative, the processing in
this event is terminated and the GET events for any subordinate database tables
are not processed either.
This variant of the CHECK statement should be
used only if the logical database for the corresponding table does not support
dynamic selections (see CHECK SELECT-OPTIONS ), or SELECT-OPTIONS with the
addition NO DATABASE SELECTION . Otherwise, the relevant record is not read from
the database and made available to the program.
Called only after a GET event.
statement checks all the selections for SELECT-OPTIONS where the reference field
after FOR belongs to the current table dbtab (specified after GET . However,
this applies only if the logical database for dbtab does not support dynamic
selections . Otherwise, the selections are passed directly to the logical
database (with the exception: addition ” NO DATABASE SELECTION ” to
This variant of the CHECK statement only makes sense if
the logical database does not support dynamic selections for the corresponding
table or SELECT-OPTIONS are defined with the addition ” NO DATABASE SELECTION
You can determine from the ABAP/4 Development Workbench whether
dynamic selections are defined and, if so, for which logical database tables by
selecting Development -> Programming environ. -> Logical databases
followed by Extras -> Dynamic selections .
database F1S of the demo flight reservation system contains the tables SPFLI
with, and the table SFLIGHT without, dynamic
SF_PRICE FOR SFLIGHT-PRICE,
SP_FROM FOR SPFLI-CITYFROM NO DATABASE SELECTION,
Since dynamic selections are defined with the
table SPFLI , but not with the table SFLIGHT , the following procedure
CHECK statement is equivalent to the following statement:
the CHECK statement is equivalent to the following
SELECT-OPTIONS , fields from superior tables in the database hierarchy are not
Wrong ” OPTION ” in SELECT-OPTIONS or RANGES table
: Wrong ” SIGN ” in SELECT-OPTIONS or RANGES table