ABAP Keyword Documentation → ABAP − Reference → Processing Internal Data → Internal Tables → Processing Statements for Internal Tables → MODIFY itab → MODIFY itab - itab_line
Internal Tables, Index Access with Key Specified
The example shows an index access to a hashed table.
Other versions: 7.31 | 7.40 | 7.54
Source Code
DATA: sflight_tab TYPE HASHED TABLE
OF sflight
WITH UNIQUE KEY primary_key
COMPONENTS carrid connid fldate
WITH NON-UNIQUE SORTED KEY plane_type
COMPONENTS planetype,
sflight_wa LIKE LINE OF sflight_tab,
count TYPE i.
SELECT *
FROM sflight
WHERE carrid = 'LH'
INTO TABLE @sflight_tab.
LOOP AT sflight_tab INTO sflight_wa USING KEY plane_type
WHERE planetype = 'A310-300'.
sflight_wa-seatsmax += 20.
MODIFY sflight_tab INDEX sy-tabix
USING KEY loop_key
FROM sflight_wa
TRANSPORTING seatsmax.
IF sy-subrc = 0.
count += 1.
ENDIF.
ENDLOOP.
cl_demo_output=>display( |{ count } flights modified| ).
Description
The table sflight_tab
is a hashed table with a unique primary key and a non-unique
secondary sorted key. Since a secondary sorted key is specified in the statement MODIFY
after USING KEY
, it is possible to access the hashed table using the associated secondary table index.
This example only demonstrates the syntax. Generally, instead of using the statement MODIFY
, modifications of this type should be made using a field symbol or a data reference:
WHERE planetype = 'A310-300'.
<sflight_wa>-seatsmax = <sflight_wa>-seatsmax + 20.
ENDLOOP.