SAP LINE EXISTS FUNCTION

Get Example source ABAP code based on a different SAP table
  


ARTICLE
• line_exists ABAP_FUNCTION

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.