Skip to Content
Technical Articles

dynamic remove all special characters at internal table

Many description fields maintain by the user could contain special characters like double quotes and a vertical line, which will lead to mismatched columns like at generated Excel file or spool result list. Here create a small routine to replace all those kinds of characters for all fields at one internal table.

 

  FIELD-SYMBOLS: <wa_table> TYPE any,
                 <field> TYPE any.
  DATA:lv_counter TYPE I,   "countner
       ld_fieldtype   TYPE CHAR01, "field type
       lv_field_num type I. "num of fields

check gt_output[] is not INITIAL.

*Get number of fields for Input table
read TABLE gt_output ASSIGNING <wa_table> INDEX 1.
DATA(lo_descr) = CAST cl_abap_structdescr(
     cl_abap_datadescr=>describe_by_data( <wa_table> ) ).

  lv_field_num = LINES( lo_descr->components ).

 loop at gt_output ASSIGNING <wa_table>.
   lv_counter = 1.
   DO lv_field_num TIMES.
*   loop every fields of internal table
         ASSIGN COMPONENT lv_counter
          OF STRUCTURE <wa_table> TO <field>.
        if sy-subrc eq 0.
           DESCRIBE field <field> TYPE ld_fieldtype.
           "only replace Character type, could dump like for P type field with replace
           IF  ld_fieldtype = 'C'.
            REPLACE ALL OCCURRENCES OF '"' in <field> with space.
           "here only replace the double quotes " 
           endif.
        else.
          CONTINUE.
        endif.
    lv_counter = lv_counter + 1.
   ENDDO.
 ENDLOOP.

 

Be the first to leave a comment
You must be Logged on to comment or reply to a post.