Skip to Content
0
Former Member
Oct 20, 2008 at 05:25 PM

File wrong converted after FTP transfer

63 Views

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.