Upload e download de arquivos

Um dos problemas mais comuns em ABAP é a leitura e gravação de arquivos, seja no application server como no desktop do usuário.

Vou mostrar aqui como é fácil ler e gravar arquivos no ABAP.

Nesse post, apenas vou indicar os métodos. Nos posts seguintes vou mostrar como usar com exemplos.

Temos uma Function Module (FM) para ler e outra para gravar arquivos localmente. Nos dois casos, precisamos passar pelo menos duas informações para a FM que é o nome do arquivo e o conteúdo do mesmo.

Download

Antigamente usávamos a FM WS_DOWNLOAD, que já está obsoleta. Isso quer dizer que ainda funciona e você encontrará programas antigos usando essa FM. Não devemos usar. Devemos usar métodos das classe CL_GUI_FRONTEND_SERVICES, que fornece todos os serviços necessários para manipular arquivos.

Para facilitar, a própria SAP provê uma nova FM que encapsula todos os métodos necessários para download de arquivo: GUI_DOWNLOAD.

Upload

Nos programas mais antigos, você vai encontrar a FM obsoleta WS_UPLOAD. Ela funciona da mesma maneira que a WS_DOWNLOAD, mas a SAP nos orienta a usar também os métodos da classe CL_GUI_FRONTEND_SERVICES.

Novamente aqui, para facilitar a nossa via, temos outra FM que encapsula todos os métodos necessários para o upload de arquivos: GUI_UPLOAD.

Nos próximos posts, vou publicar algumas RDB (Receitas de Bolo) para uso dessas duas FMs.

Como fica no Application Server?

Essas duas FMs são recomendadas para manipular arquivos no desktop local do usuário. Agora, quando precisamos ler ou gravar dados em arquivos no application server, usamos outra técnica.

Usamos o comando OPEN DATASET

OPEN DATASET l_ful_name FOR INPUT IN TEXT MODE ENCODING DEFAULT.

* MESSAGE l_others.

IF sy-subrc = 0.

CLOSE DATASET l_ful_name.

ELSE.

RAISE file_not_found.

ENDIF.

Nesse exemplo, estou usando o OPEN DATASET apenas para verificar se o arquivo existe ou não.

Vou entrar mais em datalhes desse comando em um próximo post onde mostrarei outra RDB usando OPEN DATASET.