Skip to content

ABAP Keyword Documentation →  ABAP − Reference →  Processing Internal Data →  Internal Tables →  Processing Statements for Internal Tables →  MODIFY itab →  MODIFY itab - itab_line 

MODIFY itab - table_key

Quick Reference

Other versions: 7.31 | 7.40 | 7.54

Syntax


... TABLE itab [USING KEY keyname] ... 

Effect

For wa, a work area compatible to the row type of the internal table must be specified. This concerns functional operand positions. The first row of the internal table found, whose values in the columns of the table key used match those of the corresponding components of wa, is processed. If the key fields in wa are empty, no entries are processed.

If the USING KEY addition is not specified, the primary table key is used. If the USING KEY addition is specified, the table key specified in keyname is used.

The same applies when searching for a row to be modified as to key access using the statement READ.

If the primary table key is used to access a standard table and the key is empty, the first row of the internal table is deleted. If this is statically identifiable, the syntax check produces a warning.


Note

When using the primary table key, note that this key can be the standard key, which can also have unexpected consequences:

  • For structured row types, the standard key covers all character-like and byte-like components.
  • The standard key of a standard table can be empty.


Example

Converts the local currency of an airline using primary key access to the internal table scarr_tab. The structure of the work area is constructed using the value operator VALUE from the result of a read with a table expression, in which the component currcode is assigned the new value. The addition TRANSPORTING modifies this component only in the respective table row.

DATA: carrid   TYPE scarr-carrid   VALUE 'LH', 
      currcode TYPE scarr-currcode VALUE 'EUR'. 
cl_demo_input=>new( 
  )->add_field( CHANGING field = carrid 
  )->add_field( CHANGING field = currcode )->request( ). 

DATA scarr_tab TYPE SORTED TABLE OF scarr 
               WITH UNIQUE KEY carrid. 
SELECT * 
       FROM scarr 
       INTO TABLE @scarr_tab. 

MODIFY TABLE scarr_tab 
       FROM VALUE #( 
             BASE scarr_tab[ KEY primary_key carrid = carrid ] 
              currcode = currcode ) 
       TRANSPORTING currcode.