Quantcast
Channel: SCN: Message List
Viewing all articles
Browse latest Browse all 3548

ABAP Remove Break Point...

$
0
0

Hi Experts,

 

I have a scenario i have made a query according to the coding of transposing my report from column to raw but when i execute the transaction it throws an error of shot dump .. Can any one guide me how to remove this error.

 

 

*&---------------------------------------------------------------------*

*& Purpose  : Utility to transpose Internal Table -

*&            Row to Column and Column to Row

*& Author   : Naimesh Patel

*& URL      : http://zevolving.com/?p=2463

*&---------------------------------------------------------------------*

*

INTERFACE zif_transposer.

   TYPES:

     BEGIN OF ty_rows,

       row     TYPE i,

       FIELD   TYPE char30,

       dename  TYPE char30,

       VALUE   TYPE STRING,

     END   OF ty_rows.

   TYPES: tt_rows TYPE STANDARD TABLE OF ty_rows.

   TYPES:

     BEGIN OF ty_fields,

       FIELD TYPE char30,

       dename TYPE char30,

     END   OF ty_fields.

   TYPES: tt_fields TYPE STANDARD TABLE OF ty_fields.

   METHODS:

     transpose

         RETURNING VALUE(ro_data) TYPE REF TO DATA.

   DATA: t_fields TYPE tt_fields.

   DATA: t_data   TYPE tt_rows.

   DATA: o_dyna_table TYPE REF TO DATA.

   DATA: o_dyna_wa    TYPE REF TO DATA.

   METHODS: create_dynamic_table.

   METHODS: collect_fields.

ENDINTERFACE.                    "zif_transposer

*

CLASS zcl_transpose_to_columns DEFINITION.

   PUBLIC SECTION.

     INTERFACES: zif_transposer.

     METHODS:

       constructor

         IMPORTING

           it_data   TYPE zif_transposer=>tt_rows

           it_fields TYPE zif_transposer=>tt_fields OPTIONAL.

   PRIVATE SECTION.

     ALIASES: t_data   FOR zif_transposer~t_data.

     ALIASES: t_fields FOR zif_transposer~t_fields.

     ALIASES: o_dyna_table FOR zif_transposer~o_dyna_table.

     ALIASES: o_dyna_wa    FOR zif_transposer~o_dyna_wa.

ENDCLASS.                    "zcl_transpose_to_columns DEFINITION

*

CLASS zcl_transpose_to_rows DEFINITION.

   PUBLIC SECTION.

     INTERFACES: zif_transposer.

     METHODS:

       constructor

         IMPORTING

           it_data   TYPE ANY TABLE

           it_fields TYPE zif_transposer=>tt_fields OPTIONAL.

   PRIVATE SECTION.

     ALIASES: t_data   FOR zif_transposer~t_data.

     ALIASES: t_fields FOR zif_transposer~t_fields.

     ALIASES: o_dyna_table FOR zif_transposer~o_dyna_table.

     ALIASES: o_dyna_wa    FOR zif_transposer~o_dyna_wa.

ENDCLASS.                    "zcl_transpose_to_rows DEFINITION

*

CLASS zcl_transpose_to_columns IMPLEMENTATION.

   METHOD constructor.

     t_data   = it_data.

     t_fields = it_fields.

   ENDMETHOD.                    "constructor

   METHOD zif_transposer~transpose.

     FIELD-SYMBOLS:

       <f_tab> TYPE STANDARD TABLE,

       <f_wa>  TYPE ANY,

       <f_field> TYPE ANY.

     DATA: ls_data LIKE LINE OF me->t_data.

*   create dynamic table

     me->zif_transposer~collect_fields( ).

     me->zif_transposer~create_dynamic_table( ).

*   Move data to Dynamica table

     ASSIGN o_dyna_table->TO <f_tab>.

     ASSIGN o_dyna_wa->*     TO <f_wa>.

     LOOP AT me->t_data INTO ls_data.

       ASSIGN COMPONENT ls_data-FIELD OF STRUCTURE <f_wa> TO <f_field>.

       IF sy-subrc EQ 0.

         <f_field> = ls_data-VALUE.

       ENDIF.

       AT END OF row.

         APPEND <f_wa> TO <f_tab>.

         CLEAR  <f_wa>.

       ENDAT.

     ENDLOOP.

*   send data back

     ro_data = o_dyna_table.

   ENDMETHOD.                    "zif_transposer~transpose

   METHOD zif_transposer~create_dynamic_table.

     DATA: lo_struct   TYPE REF TO cl_abap_structdescr,

           lo_element  TYPE REF TO cl_abap_elemdescr,

           lo_new_type TYPE REF TO cl_abap_structdescr,

           lo_new_tab  TYPE REF TO cl_abap_tabledescr,

           lt_comp     TYPE cl_abap_structdescr=>component_table,

           lt_tot_comp TYPE cl_abap_structdescr=>component_table,

           la_comp     LIKE LINE OF lt_comp.

     DATA: ls_field    LIKE LINE OF me->t_fields.

     DATA: lv_name     TYPE STRING.

     LOOP AT me->t_fields INTO ls_field.

       IF ls_field-dename IS INITIAL.

         lv_name = ls_field-FIELD.

       ELSE.

         lv_name = ls_field-dename.

       ENDIF.

*   Element Description

       lo_element ?= cl_abap_elemdescr=>describe_by_name( lv_name ).

*   Components

       la_comp-NAME = ls_field-FIELD.

       la_comp-TYPE = lo_element.

       APPEND la_comp TO lt_tot_comp.

       CLEAR: la_comp.

     ENDLOOP.

*   Create a New Type

     lo_new_type = cl_abap_structdescr=>create( lt_tot_comp ).

*   New Table type

     lo_new_tab = cl_abap_tabledescr=>create(

                     p_line_type  = lo_new_type

                     p_table_kind = cl_abap_tabledescr=>tablekind_std

                     p_unique     = abap_false ).

*   data to handle the new table type

     CREATE DATA o_dyna_table TYPE HANDLE lo_new_tab.

     CREATE DATA o_dyna_wa    TYPE HANDLE lo_new_type.

   ENDMETHOD.                    "create_dynamic_table

   METHOD zif_transposer~collect_fields.

     CHECK t_fields IS INITIAL.

     DATA: lv_first_field  TYPE char30.

     DATA: ls_data         LIKE LINE OF me->t_data.

     DATA: ls_field        LIKE LINE OF me->t_fields.

     LOOP AT me->t_data INTO ls_data.

       IF lv_first_field = ls_data-FIELD.

         EXIT.

       ENDIF.

       IF lv_first_field IS INITIAL.

         lv_first_field = ls_data-FIELD.

       ENDIF.

       MOVE-CORRESPONDING ls_data TO ls_field.

       APPEND ls_field TO me->t_fields.

     ENDLOOP.

   ENDMETHOD.                    "collect_Fields

ENDCLASS.                    "zcl_transpose_to_columns IMPLEMENTATION

*

CLASS zcl_transpose_to_rows IMPLEMENTATION.

   METHOD constructor.

     GET REFERENCE OF it_data INTO o_dyna_table.

     t_fields = it_fields.

   ENDMETHOD.                    "constructor

   METHOD zif_transposer~transpose.

     FIELD-SYMBOLS:

       <f_tab> TYPE STANDARD TABLE,

       <f_wa>  TYPE ANY,

       <f_field> TYPE ANY.

     DATA: lt_rows TYPE zif_transposer=>tt_rows.

     DATA: ls_rows LIKE LINE OF lt_rows,

           lv_row  TYPE i.

     DATA: ls_fields LIKE LINE OF t_fields.

     me->zif_transposer~collect_fields( ).

     me->zif_transposer~create_dynamic_table( ).

     ASSIGN o_dyna_table->* TO <f_tab>.

     LOOP AT <f_tab> ASSIGNING <f_wa>.

       lv_row = sy-tabix.

       LOOP AT t_fields INTO ls_fields.

         ASSIGN COMPONENT ls_fields-FIELD OF STRUCTURE <f_wa> TO <f_field>.

         IF sy-subrc EQ 0.

           ls_rows-row   = lv_row.

           ls_rows-FIELD = ls_fields-FIELD.

           ls_rows-dename = ls_fields-dename.

           ls_rows-VALUE  = <f_field>.

           APPEND ls_rows TO lt_rows.

         ENDIF.

       ENDLOOP.

     ENDLOOP.

     me->t_data = lt_rows.

     GET REFERENCE OF me->t_data INTO ro_data.

   ENDMETHOD.                    "zif_transposer~transpose

   METHOD zif_transposer~create_dynamic_table.

*   Setting up the o_dyna_wa is unnecessary, just sake of completeness

*   of this method

     FIELD-SYMBOLS:

       <f_tab> TYPE STANDARD TABLE,

       <f_wa>  TYPE ANY.

     ASSIGN o_dyna_table->* TO <f_tab>.

     READ TABLE <f_tab> ASSIGNING <f_wa> INDEX 1.

     IF sy-subrc EQ 0.

       GET REFERENCE OF <f_wa> INTO o_dyna_wa.

     ENDIF.

   ENDMETHOD.                    "zif_transposer~create_dynamic_table

   METHOD zif_transposer~collect_fields.

     DATA: lo_tab      TYPE REF TO cl_abap_tabledescr,

           lo_struc    TYPE REF TO cl_abap_structdescr,

           lt_comp     TYPE cl_abap_structdescr=>component_table,

           ls_comp     LIKE LINE OF lt_comp,

           ls_fields   LIKE LINE OF t_fields.

     IF t_fields IS INITIAL.

       lo_tab ?= cl_abap_tabledescr=>describe_by_data_ref( o_dyna_table ).

       lo_struc ?= lo_tab->get_table_line_type( ).

       lt_comp = lo_struc->get_components( ).

       LOOP AT lt_comp INTO ls_comp.

         ls_fields-FIELD = ls_comp-NAME.

         ls_fields-dename = ls_comp-type->get_relative_name( ).

         APPEND ls_fields TO t_fields.

       ENDLOOP.

     ENDIF.

   ENDMETHOD.                    "zif_transposer~collect_fields

ENDCLASS.                    "zcl_transpose_to_rows IMPLEMENTATION




Regards,

Qamber Abbas


Viewing all articles
Browse latest Browse all 3548

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>