SAP – Presentation Server – Functions – Upload e GUI_Upload – Abap

Publicado: 9 de agosto de 2014 em Abap

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:

Open Office Calc

Open Office Calc

2 – Exporte a planilha para um arquivo texto separado por tabulações:

Texto - separados por tab

Texto – separados por tab

3 – Utilize o código abaixo para importar o arquivo para uma tabela interna:

Tabela Interna

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.
Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

w

Conectando a %s