Search This Blog

Tuesday, October 09, 2012

Use field-symbol to move-corresponding


FORM update_data  USING    im_input
                  CHANGING ch_output.


  DATA: ob_desc  TYPE REF TO cl_abap_structdescr.
  DATA: i_in  TYPE abap_compdescr_tab.
  DATA: i_out TYPE abap_compdescr_tab.
  DATA: l_value(40).

  FIELD-SYMBOLS:
TYPE LINE OF abap_compdescr_tab.
  FIELD-SYMBOLS: TYPE ANY,
                 TYPE ANY.


* Determine Structures
  ob_desc ?= cl_abap_typedescr=>describe_by_data( im_input ).
  i_in[] = ob_desc->components[].
  ob_desc ?= cl_abap_typedescr=>describe_by_data( ch_output ).
  i_out[] = ob_desc->components[].

* Move input to output check nodata
  LOOP AT i_in ASSIGNING
.
    ASSIGN COMPONENT
-name OF STRUCTURE im_input TO .
    IF sy-subrc = 0.
      l_value = .
      IF l_value <> c_nodata.
        ASSIGN COMPONENT
-name OF STRUCTURE ch_output TO .
        IF sy-subrc = 0.
          = .
        ENDIF.
      ENDIF.
    ENDIF.
  ENDLOOP.

ENDFORM.                    " UPDATE_DATA

No comments: