Hello,
We got a strange problem when transfering a txt file.
The file looks like this before transfering it with a program that uses FTP commands:
410-00000 | ABBOCATH-T N°18 | 9057.000 | ST | 16.35 | 1301
410-00005 | ABBOCATH-T N°18 ABC | 56068.000 | ST | 28.41 | 1301
....
Once the file is transfered, it looks like this in the FTP folder:
410-00000 | ABBOCATH-T N°18 | 9057.000 | ST | 16.35 | 1301 □ 410-00005 | ABBOCATH-T N°18 ABC | 56068.000 | ST | 28.41 | 1301...
The problem is that breaklines are not recognized in this file, they have been changed by this strange character □ after 1301 (it's not exactly that character, but it looks like a square).
I was not able to copy the exact txt file, because that character was converted to a breakline, so I supose that this character means a breakline that is not recognized after transfer.
The code we're using is this:
*----------------------------------------------------------------------* ***INCLUDE LZHR_RFC_MOVFILEF01 . *----------------------------------------------------------------------* *&---------------------------------------------------------------------* *& Form INICIALIZAR *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM inicializar . DATA zvalor1 LIKE zgetdconst-valor1. * SELECT SINGLE valor1 INTO gv_filename * FROM zgetdconst WHERE modulo EQ 'HR' AND * proyec EQ 'SISSALUD' AND * aplica EQ 'FTP' AND * campo EQ 'FILENAME' AND * correl EQ '0001'. * Construir *Begin RVP17102008 * Concatenate 'STOCK_' sy-datum+6(2) sy-datum+4(2) sy-datum(4) '.TXT' * into gv_filename. CONCATENATE 'STOCK' sy-datum(4) sy-datum+4(2) sy-datum+6(2) '.TXT' INTO gv_filename. *End RVP17102008 IF sy-subrc NE 0. ENDIF. SELECT SINGLE valor1 INTO gv_user FROM zgetdconst WHERE modulo EQ 'HR' AND proyec EQ 'SISA' AND aplica EQ 'FTP' AND campo EQ 'USER' AND correl EQ '0001'. IF sy-subrc NE 0. ENDIF. SELECT SINGLE valor1 INTO gv_pwd FROM zgetdconst WHERE modulo EQ 'HR' AND proyec EQ 'SISA' AND aplica EQ 'FTP' AND campo EQ 'CLAVE' AND correl EQ '0001'. IF sy-subrc NE 0. ENDIF. SELECT SINGLE valor1 INTO gv_host FROM zgetdconst WHERE modulo EQ 'HR' AND proyec EQ 'SISA' AND aplica EQ 'FTP' AND campo EQ 'SERVER' AND correl EQ '0001'. IF sy-subrc NE 0. ENDIF. SELECT SINGLE valor1 INTO zvalor1 FROM zgetdconst WHERE modulo EQ 'HR' AND proyec EQ 'SISA' AND aplica EQ 'FTP' AND campo EQ 'RFC_DEST' AND correl EQ '0001'. IF sy-subrc EQ 0. gv_rfc_dest = zvalor1. ELSE. ENDIF. SELECT SINGLE valor1 INTO gv_path FROM zgetdconst WHERE modulo EQ 'HR' AND proyec EQ 'SISA' AND aplica EQ 'FTP' AND campo EQ 'PATH' AND correl EQ '0001'. IF sy-subrc NE 0. ENDIF. ENDFORM. " INICIALIZAR *&---------------------------------------------------------------------* *& Form PROCESAR *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM procesar . DATA: BEGIN OF tbl_ftp_return OCCURS 0, line(100) TYPE c, END OF tbl_ftp_return. DATA: zstrlen TYPE i, zhandle TYPE i, zftp_cmd(100) TYPE c, zftp_err(100) TYPE c. * ztext = gv_host. CONDENSE ztext. * CONCATENATE text-i14 ztext text-i11 INTO ztext SEPARATED BY space. * PERFORM sapgui_progress_indicator USING ztext. SET EXTENDED CHECK OFF. zstrlen = STRLEN( gv_pwd ). TRANSLATE gv_user TO LOWER CASE. TRANSLATE gv_pwd TO LOWER CASE. CALL FUNCTION 'HTTP_SCRAMBLE' EXPORTING SOURCE = gv_pwd sourcelen = zstrlen key = gc_http_key IMPORTING destination = gv_pwd. . * Open FTP CALL FUNCTION 'FTP_CONNECT' EXPORTING user = gv_user password = gv_pwd host = gv_host rfc_destination = gv_rfc_dest IMPORTING handle = zhandle EXCEPTIONS not_connected = 1 OTHERS = 2. IF sy-subrc NE 0. * MESSAGE i117 DISPLAY LIKE 'E' WITH reg_ftp_data-host . EXIT. ENDIF. * ztext = v_filename. CONDENSE ztext. * CONCATENATE text-i12 ztext text-i13 INTO ztext SEPARATED BY space. * PERFORM sapgui_progress_indicator USING ztext. TRANSLATE gv_path TO LOWER CASE. * CONCATENATE gv_path gv_filename * INTO gv_filename. CONCATENATE 'cd' gv_path INTO gv_path SEPARATED BY space. CALL FUNCTION 'FTP_COMMAND' EXPORTING handle = zhandle command = gv_path compress = 'N' TABLES data = tbl_ftp_return EXCEPTIONS command_error = 1 tcpip_error = 2. CONCATENATE 'put' gv_filename INTO zftp_cmd SEPARATED BY space. CALL FUNCTION 'FTP_COMMAND' EXPORTING handle = zhandle command = zftp_cmd compress = 'N' TABLES data = tbl_ftp_return EXCEPTIONS command_error = 1 tcpip_error = 2. READ TABLE tbl_ftp_return INDEX 2. TRANSLATE tbl_ftp_return TO UPPER CASE. IF NOT tbl_ftp_return CS 'COMMAND SUCCESSFUL'. LOOP AT tbl_ftp_return. CONCATENATE zftp_err tbl_ftp_return-line INTO zftp_err SEPARATED BY space. ENDLOOP. * MESSAGE e116 DISPLAY LIKE 'E' WITH zftp_err. * p_ret = 4. ENDIF. * ztext = v_host. CONDENSE ztext. * CONCATENATE text-i07 ztext text-i11 INTO ztext SEPARATED BY space. * PERFORM sapgui_progress_indicator USING ztext. CALL FUNCTION 'FTP_DISCONNECT' EXPORTING handle = zhandle. CALL FUNCTION 'RFC_CONNECTION_CLOSE' EXPORTING destination = gv_rfc_dest EXCEPTIONS OTHERS = 1. IF sy-subrc NE 0. * MESSAGE i118 DISPLAY LIKE 'E' WITH reg_ftp_data-rfc_dest. EXIT. ENDIF. ENDFORM. " PROCESAR
Could you please help us to get the exact txt file after transfering it?
Thanks in advance.