ABAP Keyword Documentation → ABAP - Reference → Processing Internal Data → Internal Tables → Expressions and Functions for Internal Tables → table_exp - Table Expressions → table_exp - default
Table Expressions, Default Value
This example demonstrates default values for table expressions.
Other versions:
7.31 | 7.40 | 7.54
Source Code
TYPES:
BEGIN OF line,
id TYPE i,
value TYPE string,
END OF line,
itab TYPE SORTED TABLE OF line WITH UNIQUE KEY id.
DATA(def) = VALUE line( id = 0 value = `not found` ).
DATA(itab) = VALUE itab( ( id = 3 value = `CCC` )
( id = 4 value = `DDD` )
( id = 5 value = `EEE` ) ).
DATA(result1) = VALUE #( itab[ id = 1 ] DEFAULT def ).
cl_demo_output=>write( result1 ).
DATA(result2) = VALUE #( itab[ id = 1 ]-value DEFAULT def-value ).
cl_demo_output=>write_data( result2 ).
DATA(result3) = VALUE #( itab[ id = 1 ] DEFAULT VALUE #(
itab[ id = 2 ] DEFAULT VALUE #(
itab[ id = 3 ] OPTIONAL ) ) ).
cl_demo_output=>write_data( result3 ).
cl_demo_output=>display( ).
Description
The result result1
of the first table expression has the row type of the
internal table itab
. The specified row is not found, which means that the structure def
specified after DEFAULT
is returned instead.
The result result2
of the second table expression is produced from a chaining
with the structure component selector and is a component with the type string
.
Here, only the corresponding component of the structure def
is specified as the default value.
The result result3
of the third table expression again has the row type of
the internal table itab
. Further table expressions with default values are
specified as the default value. In the case shown here, the table expression in the second default value
finds a row and returns it. If no searches are successful, an initial rows is returned due to the closing OPTIONAL
.