ABAP Keyword Documentation → ABAP − Reference → Processing Internal Data → Assignments → Assigning Structure Components → Assigning Components: Examples
Component Operator, Handling Duplicates
This example demonstrates the component
operator with the addition DISCARDING DUPLICATES.
Other versions:
7.31 | 7.40 | 7.54
Source Code
TYPES:
BEGIN OF line,
a1 TYPE i,
a2 TYPE i,
END OF line,
ntab1 TYPE STANDARD TABLE OF line WITH EMPTY KEY,
ntab2 TYPE SORTED TABLE OF line WITH UNIQUE KEY a1,
BEGIN OF line1,
x1 TYPE i,
x2 TYPE ntab1,
END OF line1,
BEGIN OF line2,
y1 TYPE i,
y2 TYPE ntab2,
END OF line2,
itab1 TYPE STANDARD TABLE OF line1 WITH EMPTY KEY,
itab2 TYPE SORTED TABLE OF line2 WITH UNIQUE KEY y1.
DATA(itab1) =
VALUE itab1( ( x1 = 1 x2 = VALUE #( ( a1 = 1 a2 = 2 )
( a1 = 3 a2 = 4 ) ) )
( x1 = 2 x2 = VALUE #( ( a1 = 1 a2 = 2 )
( a1 = 1 a2 = 4 ) ) )
( x1 = 1 x2 = VALUE #( ( a1 = 1 a2 = 2 )
( a1 = 3 a2 = 4 ) ) ) ).
DATA(itab2) =
CORRESPONDING itab2( itab1 DISCARDING DUPLICATES
MAPPING y1 = x1
y2 = x2 DISCARDING DUPLICATES ).
DATA(out) = cl_demo_output=>new( ).
LOOP AT itab2 INTO DATA(wa).
out->write( wa-y1
)->write( wa-y2
)->line( ).
ENDLOOP.
out->display( ).
Description
The addition DISCARDING DUPLICATES is used twice to ignore duplicate rows:
DISCARDING DUPLICATESafteritab1prevents an exception when inserting the third row ofitab1initab2.
- In the mapping rule,
DISCARDING DUPLICATESprevents the exception when the second row of the tabular componentx2is inserted when inserting the second row ofitab1initab2.