¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Conexión FTP desde informe ABAP: Ejemplo de código sencillo para importar datos en tabla interna

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 167 Vistas
0
Cargando...

Hola Expertos,

¿Cómo puedo establecer una conexión FTP desde un informe ABAP? ¿Y una vez establecida, puedo importar los datos en la tabla interna?

Por favor, proporciónenme un ejemplo de código sencillo.

Gracias

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Una vez que la conexión está abierta, ¿es necesario llamar a 'FTP_COMMAND' para descargar los datos? ¿O simplemente indicar el directorio en 'FTP_SERVER_TO_R3'? (¿En FTP_SERVER_TO_R3 luego se debe indicar la tabla bajo 'TABLES', texto = it_tab. ¿Es correcto?)

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Desde la última vez que verifiqué, SAP solo admite conexiones FTP de forma predeterminada. No admite SFTP (Protocolo de Transferencia de Archivos SSH). Las conexiones SFTP requieren un proyecto personalizado que incluya a tu equipo de base.

Esto es lo que necesitas hacer para conectarte e interactuar con un servidor a través de FTP. Para obtener más información, busca en github ejemplos de codificación en https://github.com/search?q=abap+ftp .

1. Los datos de entrada que necesitas son:

  • Nombre de usuario FTP
  • Contraseña FTP
  • Indicar si la contraseña ya está cifrada
  • Servidor/Nombre de host FTP
  • Destino RFC de TCPIP para el programa interno 'sapftp', por defecto es 'SAPFTPA'

2. Cifrar la contraseña

En caso de que tu contraseña siga siendo texto plano, debes cifrarla con FM 'HTTP_SCRAMBLE' utilizando la contraseña en texto plano, su longitud y la clave '26101957'.

3. Conectar con el Host FTP

Para conectarte con el host FTP, necesitas llamar a FM 'FTP_CONNECT' con el usuario, la contraseña cifrada, el nombre de host y el Destino RFC para el programa sapftp (por ejemplo, SAPFTPA). El identificador devuelto te permite reutilizar la sesión FTP hasta que la cierres, o hasta que se cierre automáticamente después de, por ejemplo, un tiempo de espera.

4. Interactuar con el Host FTP a nivel de directorio

Para interactuar (leer/escribir) con el Host FTP, necesitas llamar a FM 'FTP_COMMAND' con el identificador de tu sesión FTP y el comando FTP. (alternativamente, también puedes enviar una lista de comandos a la vez con FM 'FTP_COMMAND_LIST')

  • Cambiar directorio: cd tudirectorio
    Subir un directorio: cd ..
    Ir al directorio raíz: cd "/"
  • Obtener lista de directorios actual (carpetas y archivos): ls -la (o también solo 'dir')
  • Renombrar un archivo o directorio: rename nombreactual nuevoNombre
  • Cambiar modo de caracteres para transferir archivos de texto: ascii

5. Subir / Descargar archivos desde el Host FTP

Para descargar un archivo del servidor FTP, utiliza FM 'FTP_SERVER_TO_R3' con el identificador de sesión, el nombre de archivo del directorio actual que ya conozcas o que obtengas de la lista de directorios, y el modo de caracteres 'C' para recuperar los datos como TEXTO (tabla de texto interna).

Para subir un archivo al servidor FTP, utiliza FM 'FTP_R3_TO_SERVER' con el identificador de sesión, el nombre de archivo para el directorio actual. Si deseas enviarlo como 'BLOB' (datos binarios), tendrás que transformar, por ejemplo, una cadena de texto en un X-String con 'SCMS_STRING_TO_XSTRING' y luego transformar el X-String en una tabla binaria con 'SCMS_XSTRING_TO_BINARY'. La tabla binaria resultante y la longitud de salida deben pasarse también a la FM mencionada anteriormente 'FTP_R3_TO_SERVER'.

6. Desconectarse del Host FTP y del Destino RFC

Para desconectarte por completo, necesitas llamar a la FM 'FTP_DISCONNECT' con el identificador de sesión FTP y también a la FM 'RFC_CONNECTION_CLOSE' para el Destino RFC (por ejemplo, SAPFTPA).

Por favor, implementa tu solución y vuelve con problemas más específicos, en caso de que aún tengas dificultades.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola,

Para establecer la conexión a FTP, se deben seguir los siguientes pasos: se han enumerado los módulos de funciones a ser llamados y pasar los parámetros correspondientes.

LLAMAR FUNCIÓN 'HTTP_SCRAMBLE' "Para encriptar la contraseña

LLAMAR FUNCIÓN 'FTP_CONNECT' "Para conectar al directorio de usuario del servidor FTP

CONCATENAR lógica de convención de nombres de archivo EN archivo. "utilizado para seleccionar el archivo a ser leído.

Cargar el archivo en una tabla interna

LLAMAR FUNCIÓN 'FTP_DISCONNECT' "Para desconectar la sesión FTP conectada

LLAMAR FUNCIÓN 'RFC_CONNECTION_CLOSE'

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Desde la última vez que verifiqué, SAP solo admite conexiones FTP de forma predeterminada. No admite SFTP (Protocolo de Transferencia de Archivos SSH). Las conexiones SFTP requieren un proyecto personalizado que incluya a tu equipo de base.

Esto es lo que necesitas hacer para conectarte e interactuar con un servidor a través de FTP. Para obtener más información, busca en github ejemplos de codificación en https://github.com/search?q=abap+ftp .

1. Los datos de entrada que necesitas son:

  • Nombre de usuario FTP
  • Contraseña FTP
  • Indicar si la contraseña ya está encriptada
  • Servidor/Nombre de host FTP
  • Destino RFC de TCPIP para el programa interno 'sapftp', por defecto es 'SAPFTPA'

2. Encriptar la contraseña

En caso de que tu contraseña aún esté en texto plano, necesitas encriptarla con la FM 'HTTP_SCRAMBLE' usando la contraseña en texto plano, su longitud y la clave '26101957'.

3. Conectar con el Host FTP

Para conectarte con el host FTP, necesitas llamar a la FM 'FTP_CONNECT' con usuario, contraseña encriptada, nombre de host y Destino RFC para el programa sapftp (por ejemplo, SAPFTPA). El identificador devuelto te permite reutilizar la sesión FTP hasta que la cierres, o hasta que se cierre automáticamente después de un tiempo de espera.

4. Interactuar con el Host FTP a nivel de directorio

Para interactuar (leer/escribir) con el Host FTP, necesitas llamar a la FM 'FTP_COMMAND' con el identificador de tu sesión FTP y el comando FTP. (alternativamente, también puedes enviar una lista de comandos a la vez con FM 'FTP_COMMAND_LIST')

  • Cambiar directorio: cd tudirectorio
    Ir a un directorio superior: cd ..
    Ir al directorio raíz: cd "/"
  • Obtener lista de directorios actual (carpetas y archivos): ls -la (o también solo 'dir')
  • Renombrar un archivo o directorio: rename nombreactual nuevonombre
  • Cambiar modo de caracteres para transferir archivos de texto: ascii

5. Subir / Descargar archivos desde el host FTP

Para descargar un archivo del servidor FTP, utiliza FM 'FTP_SERVER_TO_R3' con el identificador de sesión, el nombre del archivo del directorio actual que ya conoces o obtienes de la lista de directorios, y el modo de caracteres 'C' para recuperar los datos como TEXTO (tabla de texto interna).

Para subir un archivo al servidor FTP, utiliza FM 'FTP_R3_TO_SERVER' con el identificador de sesión, el nombre del archivo para el directorio actual. Si deseas enviarlo como 'BLOB' (datos binarios), tendrás que transformar, por ejemplo, una cadena de texto en una cadena X con 'SCMS_STRING_TO_XSTRING' y luego transformar la cadena X en una tabla binaria con 'SCMS_XSTRING_TO_BINARY'. La tabla binaria resultante y la longitud de salida deben pasarse también a la FM mencionada anteriormente 'FTP_R3_TO_SERVER'.

6. Desconectarse del Host FTP y del Destino RFC

Para desconectarte por completo, necesitas llamar a la FM 'FTP_DISCONNECT' con el identificador de tu sesión FTP y también a la FM 'RFC_CONNECTION_CLOSE' para el Destino RFC (por ejemplo, SAPFTPA).

Por favor, implementa tu solución y vuelve con problemas más específicos, en caso de que aún tengas dificultades.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?