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'
EXPORTINGcommandname = '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
Publicar un comentario