Introdução
O uso de FTP a partir de ABAP parece ter sido um tema quente nos fóruns de ABAP ultimamente. Pensei em sentar e documentar tudo o que pudesse encontrar sobre este assunto e compartilhá-lo como um blog.
Ao longo dos anos, tenho visto muitas soluções diferentes para mover arquivos dentro e fora de um sistema SAP. Vi scripts de FTP externos escritos em linguagens de shell de sistemas operacionais. Vi aplicações personalizadas completas feitas para interagir com o sistema SAP. No entanto, acredito que você encontrará que a maioria da tecnologia que você precisa para realizar um simples FTP a partir de ABAP já está contida no sistema padrão. Todos os meus exemplos e capturas de tela serão de um sistema 46C.
Solução SAP
Se você já deu uma olhada no diretório do kernel do seu sistema SAP, pode ter notado um pequeno executável interessante: sapftp.exe (o nome do arquivo nos Kernels do Windows SAP). É esta parte do Kernel que expõe a funcionalidade de FTP para a linguagem de programação ABAP.
Então, você suspeita que há funcionalidade de FTP em ABAP, mas não tem certeza de como usá-la. Por onde começar? Eu sempre recorro primeiro ao Marketplace de Serviços. Uma rápida busca por SAPFTP revela que há um componente completo (BC-SRV-COM-FTP) sobre o assunto. A nota mais geral e nosso ponto de partida é a Nota OSS 93042. Esta nota começa com uma boa descrição do que é o SAPFTP: um cliente RFC de aplicativo ao qual se acessa via RFC a partir de ABAP. Mas também descobrimos que além de o SAPFTP fazer parte do kernel, também faz parte do SAPGui. Isso significa que podemos executar comandos de FTP que se originam de nosso servidor R/3 ou de uma estação de trabalho cliente.
Bem, se esta solução é acessada via RFC, então precisamos configurar alguns destinos RFC. Na verdade, temos dois que precisamos; SAPFTP para FTP de Front-end e SAPFTPA para o acesso no servidor de aplicativos. Felizmente, nem precisamos nos preocupar em configurar esses destinos RFC no SM59. A SAP forneceu um programa, RSFTP005, para gerar os destinos para nós.
Antes de começar a escrever código por conta própria para usar essas funções de FTP, por que não garantir que tudo esteja configurado e funcionando? Novamente, a SAP nos ajudou fornecendo um programa de teste, RSFTP002. (Caso você esteja se perguntando, a funcionalidade de FTP e muitos outros programas de teste estão todos contidos na Classe de Desenvolvimento do SAP SFTP). Quando executamos este teste, obtemos um conjunto de parâmetros de entrada para o servidor, nome de usuário, senha, etc. Queremos começar de forma simples e apenas garantir que estamos obtendo uma conexão. Portanto, só executaremos o comando pwd (Imprimir Diretório de Trabalho).
Sua resposta deve parecer algo assim:
Se deseja ver uma lista de comandos de FTP, tente usar o comando HELP em vez de PWD:
Se algo deu errado durante o teste, sugiro ativar a opção de rastreamento em SM59 para o Destino de FTP. Em seguida, você pode usar o programa RSFTP001 para mostrar o arquivo de rastreamento atual.
Programando o FTP
O programa RSFTP002 não apenas nos fornece um ambiente de teste, mas também nos dá um exemplo de programação. Podemos ver que a funcionalidade de FTP é realmente fornecida por meio de um conjunto de módulos de função todos dentro do Grupo de Funções SFTP. Temos os comandos básicos como FTP_CONNECT, FTP_COMMAND e FTP_DISCONNECT que podem ser combinados para criar uma ação de operação de arquivo completa. A Função FTP_COMMAND permite emitir comandos de FTP arbitrários sempre que a função SAPFTP, o Host e o servidor de destino suportarem o comando. Em seguida, você tem as funções especializadas como FTP_R3_TO_SERVER, FTP_R3_TO_CLIENT e FTP_CLIENT_TO_R3. Isso permite que você pegue alguns dados na memória e os transfira para outro local. Isso tem a vantagem de não precisar escrever os dados no sistema de arquivos primeiro e não precisar emitir comandos de FTP. No entanto, essas funções também estão limitadas ao escopo descrito.
Se você já está familiarizado com FTP em geral, trabalhar com esses módulos de função não deve parecer muito difícil. As ações de Conexão, Comando e Desconexão pareceriam algo autoexplicativas. Então, em vez de analisar o programa completo em detalhes, vamos nos concentrar em duas coisas que
Quitar espacios en una consulta SQL
Quitar espacios en una consulta SQL
Cuando trabajamos con consultas SQL, a menudo nos encontramos con la necesidad de limpiar o mani...
Transacciones MIGO y MIRO en SAP MM
Transacciones MIGO y MIRO en SAP MM
1. ¿Qué es la transacción MIGO?
La transacción MIGO (Entrada de Mercancías) se utiliza para registrar las mercancías que...
HOLA EXPERTOS,
¿QUÉ ESQUEMA DE CÁLCULO ME SIRVE PARA CALCULAR EL IVA EN BOLIVIA?
EL PORCENTAJE DE IVA EN BOLIVIA ES EL 13%.
LA FACTURA QUE TENGO COMO EJEMPLO ES LA...