Use of CL_ABAP_CORRESPONDING with flat structure

vV4Kim1465653302CL_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.

12

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

3


 

 

Leave a Reply