ABAP Excel Upload

To perform ABAP excel upload using ABAP report, we need to call a FM ‘TEXT_CONVERT_XLS_TO_SAP’. This FM converts the excel data to ABAP data. Now we can store the same in our internal table and later in our database table. The only mandatory requirement is that the table fields should match the header of excel in a synchronous way, else wrong data will be saved.

Introduction

Many times we need to upload an excel data from our local storage on PC and insert those data into our ABAP tables. This can be easily achieved using ABAP Function Module ‘TEXT_CONVERT_XLS_TO_SAP’. In the given program we convert our excel data into ABAP data and insert those data in our ztable.

ABAP Excel Upload
ABAP Excel Upload – Image Illustration of process

ABAP Program

TYPE-POOLS truxs.
PARAMETERS p_file TYPE rlgrap-filename.
TYPES : BEGIN OF t_tab,
          filename TYPE char100sm,
        END OF t_tab.
DATA : t_upload  TYPE STANDARD TABLE OF t_tab, 
       wa_upload TYPE t_tab,
       it_type   TYPE truxs_t_text_data.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
  CALL FUNCTION 'F4_FILENAME'
    EXPORTING
      field_name = 'p_file'
    IMPORTING
      file_name  = p_file.

START-OF-SELECTION.
  CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
    EXPORTING
      i_tab_raw_data       = it_type
      i_filename           = p_file
    TABLES
      i_tab_converted_data = t_upload[]
    EXCEPTIONS
      conversion_failed    = 1
      OTHERS               = 2.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 .
  ENDIF.

END-OF-SELECTION.
  DATA : ls_cc_impl TYPE zBarry_upload,
         lt_cc_impl TYPE STANDARD TABLE OF  zBarry_upload.
  LOOP AT t_upload INTO wa_upload.
    ls_cc_impl-mandt      = sy-mandt.
    ls_cc_impl-filename   = wa_upload-filename.
    APPEND ls_cc_impl TO lt_cc_impl.
  ENDLOOP.
  MODIFY zBarry_upload FROM TABLE lt_cc_impl.

Explanation

In the above program, we have implemented following steps:

  1. Initially, we have defined TYPE-POOLS truxs. TYPE-POOLS have predefined methods that can be reused in multiple programs. Here we are using truxs, that is used later as truxs_t_text_data, a data type.
  2. Now, we have define parameters: p_file. This will be used to take the file location as input.
  3. Later, we have defined variables: t_tab which is a table type, t_upload, wa_upload and it_type.
  4. Now, we have called a function module “F4_FILENAME” to process the file upload.
  5. Then, we have called another function module ‘TEXT_CONVERT_XLS_TO_SAP’ to get the ABAP form of data into an internal table.
  6. Once we have our data in an internal table, then we can easily append it to our data base table using loop.

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.