Upload arquivo ABAP

DATA:
  BEGIN OF gt_file OCCURS 0,
    line TYPE c LENGTH 400,
  END OF gt_file.

PARAMETERS: p_file     TYPE rlgrap-filename OBLIGATORY DEFAULT 'C:\'.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
  PERFORM z_upload_file.

START-OF-SELECTION.
  PERFORM z_load_file.


FORM z_load_file.
  DATA: lv_arq   TYPE string,
        vl_extab TYPE slis_t_extab.

* Abre arquivo de entrada.
  CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
      filename = p_file
      filetype = 'ASC'
    TABLES
      data_tab = gt_arquivo.

  IF sy-subrc <> 0.
    MESSAGE 'Error upload file' TYPE 'I'.
    EXIT.
  ENDIF.
ENDFORM.                    " z_load_file

FORM z_upload_file.
  DATA: ret TYPE int4,
        act TYPE int4.
  DATA: t_file TYPE TABLE OF file_table,
        s_file TYPE file_table.

  CLEAR: t_file[].

  CALL METHOD cl_gui_frontend_services=>file_open_dialog
    EXPORTING
      window_title            = 'Abrir...'
      default_extension       = '*.txt|*.csv|*.*'
      file_filter             = ' TXT (*.txt)|*.txt| CSV(*.csv)|*.csv| Todas(*.*)|*.* '
      multiselection          = space
    CHANGING
      file_table              = t_file[]
      rc                      = ret
      user_action             = act
    EXCEPTIONS
      file_open_dialog_failed = 1
      cntl_error              = 2
      error_no_gui            = 3
      not_supported_by_gui    = 4
      OTHERS                  = 5.

  IF sy-subrc EQ 0.
    READ TABLE t_file INTO s_file INDEX 1.
    MOVE s_file TO p_file.
  ENDIF.
ENDFORM.                    "z_upload_file

 

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

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