Ver Mensaje Individual
  #8  
Viejo 10/03/15, 21:01:53
julk32 julk32 is offline
Junior Member
 
Fecha de Ingreso: ago 2014
Localización: Medellín
Mensajes: 7
Importar archivo XML desde servidor externo a SAP

Hola Compañero, de antemano muchas gracias por la ayuda, acá te comparto el código



DATA : hdl TYPE i.
DATA : v_dstlen TYPE i, x_pwd(64) TYPE c.
DATA: v_cmd(80) TYPE c.
DATA: v_path LIKE sxpgcolist-parameters.
DATA: v_file LIKE rlgrap-filename.
DATA: v_error(1) TYPE c.
DATA: i_messages LIKE soli OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF it_result OCCURS 0,
line(100) TYPE c.
DATA: END OF it_result.
DATA: key TYPE i VALUE 26101957.

CONSTANTS: v_host(64) TYPE c VALUE '200.63.217.106'.
CONSTANTS: v_user(64) TYPE c VALUE '#######'.
CONSTANTS: v_pwd(64) TYPE c VALUE '#######'.

START-OF-SELECTION.
v_path = '/BACKUPS/RET_20140923_0004/'.
v_file = 'RET_20140923_0004.txt'.


PERFORM ftp_to_obe.

LOOP AT i_messages.
WRITE :/ i_messages-line.
ENDLOOP.

***************************
* FTP CONNECTION
***************************
FORM ftp_to_obe.
CLEAR: v_dstlen, x_pwd.
DESCRIBE FIELD v_pwd LENGTH v_dstlen IN CHARACTER MODE.


*.Se encripta la contraseña
CALL 'AB_RFC_X_SCRAMBLE_STRING'
ID 'SOURCE' FIELD v_pwd
ID 'KEY' FIELD key
ID 'SCR' FIELD 'X'
ID 'DESTINATION' FIELD x_pwd
ID 'DSTLEN' FIELD v_dstlen.

CALL FUNCTION 'FTP_CONNECT'
EXPORTING
user = v_user
password = x_pwd
host = v_host
rfc_destination = 'SAPFTP' " create using report program RSFTP002
IMPORTING
handle = hdl
EXCEPTIONS
not_connected = 1
OTHERS = 2.

WRITE : / ' sy-subrc ' , sy-subrc.
WRITE : / 'hdl' , hdl.

IF sy-subrc = 0.
CLEAR v_cmd.
CONCATENATE 'lcd' v_path INTO v_cmd SEPARATED BY space.
PERFORM ftp_command USING v_cmd.
CLEAR v_cmd.
CONCATENATE 'put' v_file INTO v_cmd SEPARATED BY space.
PERFORM ftp_command USING v_cmd.
ELSE.
v_error = 'X'.
CONCATENATE 'Not connected to ftp: world finest '
'user:'
INTO i_messages SEPARATED BY space.
APPEND i_messages.
CLEAR i_messages.
ENDIF.

ENDFORM. " FTP_TO_OBE

***************************
* FTP COMMAND
***************************

FORM ftp_command USING v_cmd.
CLEAR it_result.
REFRESH it_result.

CALL FUNCTION 'FTP_COMMAND'
EXPORTING
handle = hdl
command = v_cmd
TABLES
data = it_result
EXCEPTIONS
tcpip_error = 1
command_error = 2
data_error = 3
OTHERS = 4.

IF sy-subrc = 0.
CONCATENATE 'FTP command:'
'executed on host:'
INTO i_messages SEPARATED BY space.
APPEND i_messages.
CLEAR i_messages.
LOOP AT it_result.
i_messages = it_result.
APPEND i_messages.
CLEAR i_messages.
ENDLOOP.
CLEAR it_result.
REFRESH it_result.
ELSE.
v_error = 'X'.
CONCATENATE 'Command:'
'not run for host:'
INTO i_messages SEPARATED BY space.
APPEND i_messages.
CLEAR i_messages.
ENDIF.
ENDFORM. " FTP_COMMAND
Responder Con Cita