Use of CL_ABAP_CORRESPONDING with nested structure

KweiRC1465657816CL_ABAP_CORRESPONDING class provides simple methods for field mapping between nested structures.

 

 

CODE
DATABEGIN OF src,
                     col1 TYPE string VALUE ‘AA’,
                     col2 TYPE string VALUE ‘BB’,
                    BEGIN OF src_1,
                           col3 TYPE string VALUE ‘AA1’,
                           col4 TYPE string VALUE ‘BB1’,
                           BEGIN OF src_2,
                          col5 TYPE string VALUE ‘AA2’,
                          col6 TYPE string VALUE ‘BB2’,
                         END OF src_2,
                 END OF src_1,
            END OF src,
      BEGIN OF tgt,
                     fld1 TYPE string VALUE ‘XX’,
                     fld2 TYPE string VALUE ‘YY’,
                   BEGIN OF tgt_1,
                      fld3 TYPE string VALUE ‘XX1’,
                      fld4 TYPE string VALUE ‘YY1’,
                   BEGIN OF tgt_2,
                        fld5 TYPE string VALUE ‘XX2’,
                       fld6 TYPE string VALUE ‘YY2’,
                    END OF tgt_2,
               END OF tgt_1,
         END OF tgt.
WRITE:‘Source’ COLOR 3.
WRITE:/1 srccol1srccol2,
               11 srcsrc_1col3,16 srcsrc_1col4,
              21 srcsrc_1src_2col5,26 srcsrc_1src_2col6.
WRITE:‘Target’ COLOR 3.
WRITE:/1 tgtfld1tgtfld2,
               11 tgttgt_1fld316 tgttgt_1fld4,
              21 tgttgt_1tgt_2fld5,26 tgttgt_1tgt_2fld6.

” Define the mapping table, here level define the depth of structure fields

DATA(mapping_tabVALUE cl_abap_corresponding=>mapping_table(
level kind srcname ‘COL1’ dstname ‘FLD2’ )
level kind srcname ‘COL2’ dstname ‘FLD1’ )
level kind srcname ‘SRC_1’ dstname ‘TGT_1’ )
level kind srcname ‘COL3’ dstname ‘FLD3’ )
level kind srcname ‘COL4’ dstname ‘FLD4’ )
level kind srcname ‘SRC_2’ dstname ‘TGT_2’ )
level kind srcname ‘COL5’ dstname ‘FLD6’ )
level kind srcname ‘COL6’ dstname ‘FLD5’ ).
” Create mapping object from mapping table
DATA(mappercl_abap_corresponding=>create(
                                        source src
                                        destination tgt
                                        mapping mapping_tab ).

” Change the target structure

mapper->executeEXPORTING source      src
                                    CHANGING  destination tgt ).
WRITE:‘Target After:’ COLOR 3.
WRITE:/1 tgtfld1tgtfld2,
               11 tgttgt_1fld316 tgttgt_1fld4,
                21 tgttgt_1tgt_2fld5,26 tgttgt_1tgt_2fld6.


OUTPUT

4


 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s