SAP CONEXIÓN SFTP Y PASAR ARCHIVOS POR ABAP

Para una conexión SFTP primero se debe instalar en el servidor donde esté instalado SAP el winscp o similar para poder llamar comandos desde el servidor.

1º en SM49 debemos introducir la ruta donde instalamos el programa con /command


en el campo "parámetros para comando de sistema operativo" lo dejamos vacío porque será el campo que pasaremos por programa.


2º Construir los parámetros que queremos realizar para la llamada SFTP, con enviarlos es suficiente no es como en la FTP que primero hay que conectar y después pasarlos, en la SFTP basta con escribir el comando todo junto, aquí dejo unos cuantos comandos para la SFTP

  • Z_OPEN: Comando para abrir la conexión
Comando de sistema operativo: 
"C:\Program Files (x86)\WinSCP\WinSCP.com" /command

Parámetros para comando de sistema operativo
"open sftp://<user>:<password>;fingerprint=ssh-rsa-<RAS>@<host>"


  • Z_POSITION: comando para posicionarnos sobre el directorio
Comando de sistema operativo: 
"C:\Program Files (x86)\WinSCP\WinSCP.com" /command

Parámetros para comando de sistema operativo
"open sftp://<user>:<password>;fingerprint=ssh-rsa-<RAS>@<host>" "cd <carpeta>" "dir" "exit"


  • Z_PUT: comando para enviar el archivo a la carpeta especificada
Comando de sistema operativo: 
"C:\Program Files (x86)\WinSCP\WinSCP.com" /command

Parámetros para comando de sistema operativo
"open sftp://<user>:<password>;fingerprint=ssh-rsa-<RAS>@<host>" "cd <carpeta>" "put <Archivo server>" "exit"




3º En el momento de enviarlo por ABAP, usaremos la función SXPG_COMMAND_EXECUTE para enviarlo a la SFTP


CALL FUNCTION 'SXPG_COMMAND_EXECUTE'

    EXPORTING
      commandname                   'ZHN_PUT'
      additional_parameters         lv_adpara
      operatingsystem               'Windows NT'
      targetsystem                  lv_host
      destination                   ''
      stdout                        'X'
      stderr                        'X'
      terminationwait               'X'
      trace                         ''
      dialog                        ''
    IMPORTING
      status                        lv_status
      exitcode                      lv_exitcode
    TABLES
      exec_protocol                 lt_exec_protocol
    EXCEPTIONS
      no_permission                 1
      command_not_found             2
      parameters_too_long           3
      security_risk                 4
      wrong_check_call_interface    5
      program_start_error           6
      program_termination_error     7
      x_error                       8
      parameter_expected            9
      too_many_parameters           10
      illegal_command               11
      wrong_asynchronous_parameters 12
      cant_enq_tbtco_entry          13
      jobcount_generation_error     14
      OTHERS                        15.

Comentarios