Para gravar dados a partir de uma tabela interna para o servidor de apresentação usando um diálogo de usuário, use a função de Download. Para gravar dados de uma tabela interna para o servidor de apresentação sem o uso de uma caixa de diálogo do usuário, use a função WS_DOWNLOAD. 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 Download é uma delas, você pode substituir esta função pela função chamada GUI_DOWNLOAD.
GUI_DOWNLOAD: http://help.sap.com/saphelp_nw70ehp2/helpdata/de/c7/5ab8ec178c44a8aacd1dcac3460db8/content.htm
Exemplo:
Neste exemplo extraímos dados de uma tabela interna em um arquivo Excel e o salvamos no computador local.
Abap
Function : DOWNLOAD
*&---------------------------------------------------------------------* *& Report ZDATASERVER *& *&---------------------------------------------------------------------* *& Desenvolvimento Aberto *& Escreve dados no servidor de apresentação *&---------------------------------------------------------------------* REPORT ZDATASERVER. * Declara Variáveis DATA: FNOME(128), FTIPO(3), FTAMANHO TYPE I. * Cria tabela com duas colunas TYPES: BEGIN OF LINE, COL1 TYPE I, COL2 TYPE I, END OF LINE. * Cria Tabela temporaria TYPES ITAB TYPE LINE OCCURS 15. DATA: LIN TYPE LINE, TAB TYPE ITAB. * Cria e adiciona dados a tabela DO 15 TIMES. LIN-COL1 = SY-INDEX. LIN-COL2 = SY-INDEX ** 2. APPEND LIN TO TAB. ENDDO. * Chama a função de download * Dat cria tipo do Excel CALL FUNCTION 'DOWNLOAD' EXPORTING CODEPAGE = 'IBM' FILENAME = 'C:\Desenvolvimento Aberto\temp\Planilha.xls' FILETYPE = 'DAT' ITEM = 'Teste Excel' IMPORTING ACT_FILENAME = FNOME ACT_FILETYPE = FTIPO FILESIZE = FTAMANHO TABLES DATA_TAB = TAB EXCEPTIONS INVALID_FILESIZE = 1 INVALID_TABLE_WIDTH = 2 INVALID_TYPE = 3. * Imprime resultado WRITE: 'SY-SUBRC:', SY-SUBRC, / 'Nome :', (60) FNOME, / 'Tipo :', FTIPO, / 'Tamanho :', FTAMANHO. WRITE : / 'Conteudo do arquivo:', /. LOOP AT tab INTO lin. WRITE : / LIN-COL1 COLOR 3 INVERSE, LIN-COL2 COLOR 3 INVERSE. ENDLOOP.
Function : GUI_DOWNLOAD
*&---------------------------------------------------------------------* *& Report ZDATASERVER2 *& *&---------------------------------------------------------------------* *& Desenvolvimento Aberto *& GUI_DOWNLOAD *&---------------------------------------------------------------------* REPORT ZDATASERVER2. * Declara Variáveis DATA: FTAMANHO TYPE I. * Cria tabela com duas colunas TYPES: BEGIN OF LINE, COL1 TYPE I, COL2 TYPE I, END OF LINE. * Cria Tabela temporaria TYPES ITAB TYPE LINE OCCURS 15. DATA: LIN TYPE LINE, TAB TYPE ITAB. * Cria e adiciona dados a tabela DO 15 TIMES. LIN-COL1 = SY-INDEX. LIN-COL2 = SY-INDEX ** 2. APPEND LIN TO TAB. ENDDO. * Chama a função de download * Dat cria tipo do Excel CALL FUNCTION 'GUI_DOWNLOAD' EXPORTING FILENAME = 'C:\Desenvolvimento Aberto\temp\Planilha2.xls' FILETYPE = 'DAT' IMPORTING FILELENGTH = FTAMANHO TABLES DATA_TAB = TAB. * Imprime resultado WRITE: 'SY-SUBRC:', SY-SUBRC, / 'Tamanho :', FTAMANHO. WRITE : / 'Conteudo do arquivo:', /. LOOP AT tab INTO lin. WRITE : / LIN-COL1 COLOR 3 INVERSE, LIN-COL2 COLOR 3 INVERSE. ENDLOOP.