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.