SAP NetWeaver AS ABAP Release 740, ©Copyright 2014 SAP AG. All rights reserved.
ABAP Keyword Documentation →
ABAP − Reference →
Program Flow Logic →
Expressions and Functions for Conditions →
log_exp - Logical Expressions →
rel_exp - Predicates →
rel_exp - Predicate Functions →
Predicate Functions for Table-Like Arguments →
rel_exp - line_exists, Predicate Function
Syntax
... line_exists( table_exp ) ...
Effect
The predicate function line_exists checks whether the row of an internal table
specified in the
table
expression table_exp exists and returns the appropriate
logical value. Alongside single table expressions, table_exp can also handle
chainings, whose result is a row of an internal table.
Within line_exists, an explicitly specified table key in the table row
table_line of the table expression is handled in the same way as a free search key specified for this table key.
Notes
- The table expression is only used to check the existence of the specified row. No temporary result is created.
- The predicate function line_exists can be considered as a short form
of the statement READ TABLE
with the addition TRANSPORTING NO FIELDS following by sy-subrc being checked.
- The predicate function line_exists cannot be used to determine the row
number in a table index of a search key, since table expressions do not fill the system field
sy-tabix. The table function line_index can be used instead.
- If a search key specified in table_line in the table expression covers the initial part of a
secondary table key
without being specified explicitly after KEY, a syntax check warning is produced
(which can be hidden by a pragma), since the function is generally quicker if the secondary key is specified explicitly.
- As in other use cases for table expressions, line_exists must be used
carefully and no duplicate selections made. For example, line_exists should not be used to first check the existence of row and then read it. Instead, the table expression can be
assigned to a field symbol and then
sy-subrc checked. If the row in question usually exists, the table expression can be specified in the required operand position and the exception CX_SY_ITAB_LINE_NOT_FOUND caught.
Example
DATA flight_tab TYPE HASHED TABLE OF spfli
WITH UNIQUE KEY carrid connid.
SELECT *
FROM spfli
INTO TABLE flight_tab.
IF line_exists( flight_tab[ carrid = 'LH'
connid = '0400' ] ).
...
ENDIF.