Para ler dados a partir do servidor de apresentação para uma tabela interna usando um diálogo de usuário, use a função de Upload. Para ler dados a partir do servidor de apresentação para uma tabela interna sem o uso de uma caixa de diálogo do usuário, use a função WS_UPLOAD. Para mais informações, consulte a documentação do módulo de função (SE37).
Contudo o sistema SAP possui grande quantidade de funções obsoletas que ainda funcionam por compatibilidade com versões de programas mais antigos, a função Upload é uma delas, você pode substituir esta função pela função chamada GUI_UPLOAD.
GUI_UPLOAD: Função GUI_UPLOAD
Importando arquivo do Excel para uma tabela interna
1 – Para utilizar este exemplo, primeiro crie uma planilha comum com três colunas do tipo xls:
2 – Exporte a planilha para um arquivo texto separado por tabulações:
3 – Utilize o código abaixo para importar o arquivo para uma tabela interna:
Exemplo:
Neste exemplo importamos dados de um arquivo texto separado por tabs de uma planilha no formato xls.
Abap
Function : UPLOAD
*&---------------------------------------------------------------------*
*& Report ZDATASERVER3
*&
*&---------------------------------------------------------------------*
*& Desenvolvimento Aberto
*& Servidor de Apresentação - Upload
*&---------------------------------------------------------------------*
REPORT ZDATASERVER3.
* Declara variaveis
DATA: FNOME(128), FTIPO(3), FTAMANHO TYPE I.
* Cria tabela
TYPES: BEGIN OF LINE,
COL1(10) TYPE C,
COL2(10) TYPE C,
COL3(20) TYPE C,
END OF LINE.
* Cria e declara tabela interna
TYPES ITAB TYPE LINE OCCURS 10.
DATA: LIN TYPE LINE,
TAB TYPE ITAB.
* Chama a função de Upload
CALL FUNCTION 'UPLOAD'
EXPORTING
CODEPAGE = 'IBM'
FILENAME = 'C:\Desenvolvimento Aberto\temp\Plan001.txt'
FILETYPE = 'DAT'
ITEM = 'Lê arquivo txt separado por tab exportado do Excel'
IMPORTING
FILESIZE = FTAMANHO
ACT_FILENAME = FNOME
ACT_FILETYPE = FTIPO
TABLES
DATA_TAB = TAB
EXCEPTIONS
CONVERSION_ERROR = 1
INVALID_TABLE_WIDTH = 2
INVALID_TYPE = 3.
* Imprime dados na tela
WRITE: 'SY-SUBRC:', SY-SUBRC,
/ 'Name :', (60) FNOME,
/ 'Type :', FTIPO,
/ 'Size :', FTAMANHO.
SKIP 2.
WRITE / 'Conteudo do Arquivo .TXT:'.
SKIP.
LOOP AT TAB INTO LIN.
WRITE: / LIN-COL1, LIN-COL2 COLOR 4 INVERSE, LIN-COL3 COLOR 3 INVERSE.
ENDLOOP.
Function : GUI_UPLOAD
*&---------------------------------------------------------------------*
*& Report ZDATASERVER4
*&
*&---------------------------------------------------------------------*
*& Desenvolvimento Aberto
*& GUI_UPLOAD
*&---------------------------------------------------------------------*
REPORT ZDATASERVER4.
* Declara variaveis
DATA: FTAMANHO TYPE I.
* Cria tabela
TYPES: BEGIN OF LINE,
COL1(10) TYPE C,
COL2(10) TYPE C,
COL3(20) TYPE C,
END OF LINE.
* Cria e declara tabela interna
TYPES ITAB TYPE LINE OCCURS 10.
DATA: LIN TYPE LINE,
TAB TYPE ITAB.
* Chama função GUI_UPLOAD
CALL FUNCTION 'GUI_UPLOAD'
exporting
FILENAME = 'C:\Desenvolvimento Aberto\temp\Plan001.txt'
FILETYPE = 'DAT'
importing
FILELENGTH = FTAMANHO
tables
DATA_TAB = TAB
exceptions
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
INVALID_TYPE = 3.
* Imprime dados na tela
WRITE: 'SY-SUBRC:', SY-SUBRC,
/ 'Size :', FTAMANHO.
SKIP 2.
WRITE / 'Conteudo do Arquivo .TXT:'.
SKIP.
LOOP AT TAB INTO LIN.
WRITE: / LIN-COL1, LIN-COL2 COLOR 4 INVERSE, LIN-COL3 COLOR 3 INVERSE.
ENDLOOP.




