CL_ABAP_CORRESPONDING class provides simple methods for field mapping between structures.
The post describes how CL_ABAP_CORRESPONDING methods can be used for data transfer between two simple flat structures.
CODE
DATA: BEGIN OF src,
col1 TYPE string VALUE ‘AA’,
col2 TYPE string VALUE ‘BB’,
col3 TYPE string VALUE ‘CC’,
col4 TYPE string VALUE ‘DD’,
END OF src,
BEGIN OF tgt,
fld1 TYPE string VALUE ‘WW’,
fld2 TYPE string VALUE ‘XX’,
fld3 TYPE string VALUE ‘YY’,
fld4 TYPE string VALUE ‘ZZ’,
END OF tgt.
WRITE:/ ‘SOURCE STRUCTURE’ COLOR 3.
WRITE:/1‘COL1’, 10‘COL2’, 30‘COL3’, 40‘COL4’.
WRITE:/1 src–col1, 10 src–col2, 30 src–col3, 40 src–col4.
WRITE:/ ‘TARGET STRUCTURE’ COLOR 3.
WRITE:/1‘FLD1’, 10‘FLD2’, 30‘FLD3’, 40‘FLD4’.
WRITE:/1 tgt–fld1, 10 tgt–fld2, 30 tgt–fld3, 40 tgt–fld4.
TRY.
DATA(mapper) = cl_abap_corresponding=>create(
source = src
destination = tgt
mapping = VALUE cl_abap_corresponding=>mapping_table(
( level = 0 kind = 1 srcname = ‘COL1’ dstname = ‘FLD4’ )
( level = 0 kind = 1 srcname = ‘COL2’ dstname = ‘FLD2’ )
( level = 0 kind = 1 srcname = ‘COL3’ dstname = ‘FLD3’ )
( level = 0 kind = 1 srcname = ‘COL4’ dstname = ‘FLD1’ )
) ).
mapper->execute( EXPORTING source = src
CHANGING destination = tgt ).
CATCH cx_corr_dyn_error.
ENDTRY.
SKIP 3.
WRITE:/ ‘AFTER: TARGET STRUCTURE’ COLOR 3.
WRITE:/1‘FLD1’, 10‘FLD2’, 30‘FLD3’, 40‘FLD4’.
WRITE:/1 tgt–fld1, 10 tgt–fld2, 30 tgt–fld3, 40 tgt–fld4.
OUTPUT
Mapping is defined as: COL1->FLD4, COL2->FLD2,COL3->FLD3,COL4->FLD1