Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Send csv file to FTP Server

ipravir
Active Contributor
0 Likes
2,985

Hi

I wants to send a autogenerated csv file to FTP server but getting the command error while sending the file.

Kinldy find the below codes.

   CALL FUNCTION 'FTP_R3_TO_SERVER'
    EXPORTING
      HANDLE               = HANDLE        -----------1
      FNAME                = FNAME          ----------- /SAP/CR00001.CSV
*   BLOB_LENGTH          =
      CHARACTER_MODE       = 'X'
   TABLES
*      BLOB                 = SOURCTAB
      TEXT                 = SOURCTAB[]
     EXCEPTIONS
       TCPIP_ERROR          = 1
       COMMAND_ERROR        = 2
       DATA_ERROR           = 3
*   OTHERS               = 4
            .
  IF SY-SUBRC <> 0.
    CASE SY-SUBRC.
      WHEN 1.
        RAISE TCPIP_ERROR.
      WHEN 2.
        RAISE COMMAND_ERROR.
      WHEN 3.
        RAISE DATA_ERROR.
    ENDCASE.
  ENDIF.

Thanks & Regards

Praveer.

Hi

I wants to send a autogenerated csv file to FTP server but getting the command error while sending the file.

Kinldy find the below codes.

   CALL FUNCTION 'FTP_R3_TO_SERVER'
    EXPORTING
      HANDLE               = HANDLE        -----------1
      FNAME                = FNAME          ----------- /SAP/CR00001.CSV
*   BLOB_LENGTH          =
      CHARACTER_MODE       = 'X'
   TABLES
*      BLOB                 = SOURCTAB
      TEXT                 = SOURCTAB[]
     EXCEPTIONS
       TCPIP_ERROR          = 1
       COMMAND_ERROR        = 2
       DATA_ERROR           = 3
*   OTHERS               = 4
            .
  IF SY-SUBRC <> 0.
    CASE SY-SUBRC.
      WHEN 1.
        RAISE TCPIP_ERROR.
      WHEN 2.
        RAISE COMMAND_ERROR.
      WHEN 3.
        RAISE DATA_ERROR.
    ENDCASE.
  ENDIF.

Thanks & Regards

Praveer.

4 REPLIES 4
Read only

RaymondGiuseppi
Active Contributor
0 Likes
1,525
  • Did you check return codes during FTP connection (call FTP_CONNECT, before posted code) ?
  • Which error message raised the COMMAND_ERROR, 207 or 209 ?
  • Did you perform some test with SAP sample reports (RSFTP* - Note 791265 - SAPFTP: Test programs)

Regards,

Raymond

Read only

0 Likes
1,525

Hi Raymond,

I already declare all necessary step in Program, could you tell me how i can get the error message (207 / 209) from the COMMAND_ERROR.

Kindly find the below code.

All connection are working fine. Only while send the file command it's generating the error.

   FUNCTION ZSEND_TO_FTP.
*"----------------------------------------------------------------------
*"*"Local Interface:
*"  IMPORTING
*"     REFERENCE(USER) TYPE  ZUSID
*"     REFERENCE(PWRD) TYPE  ZPWRD
*"     REFERENCE(HOST) TYPE  ZHOST
*"     REFERENCE(RFC_DESTINATION) TYPE  RFCDES-RFCDEST
*"     REFERENCE(FNAME) TYPE  ZFTPFL
*"  TABLES
*"      SOURCTAB TYPE  STANDARD TABLE
*"  EXCEPTIONS
*"      NOT_CONNECTED
*"      TCPIP_ERROR
*"      COMMAND_ERROR
*"      DATA_ERROR
*"----------------------------------------------------------------------
DATA:     SOURCELEN         TYPE I,
            DESTINATION(30)   TYPE C,
            G_RECS            TYPE I.

  CONSTANTS KEY               TYPE I VALUE 26101957.

  DATA:     PASSWORD(30)      TYPE C,
            HANDLE            TYPE I,
            COMMAND(40)       TYPE C.

  TYPES:    BEGIN OF          S_RESULT,
              INFO            TYPE C LENGTH 700,
            END OF            S_RESULT.
  DATA:     RESULT            TYPE STANDARD TABLE OF S_RESULT,
            GIT_TXT           TYPE STANDARD TABLE OF S_RESULT,
            GFL_TXT           LIKE LINE OF GIT_TXT,
            GIT_XLS           TYPE TRUXS_T_TEXT_DATA.


  DATA:     GIT_STRUC             TYPE REF TO CL_ABAP_STRUCTDESCR,
            GIT_SCR               TYPE ABAP_COMPDESCR_TAB,
            GFL_SCR               LIKE LINE OF GIT_SCR,
            CL_ABAP               TYPE REF TO CL_ABAP_TYPEDESCR.

  DESCRIBE TABLE SOURCTAB LINES G_RECS.
  IF G_RECS EQ 0.
    RAISE DATA_NOT_FOUND.
    EXIT.
  ENDIF.

  SOURCELEN = STRLEN( PWRD ).
  CALL FUNCTION 'HTTP_SCRAMBLE'
    EXPORTING
      SOURCE      = PWRD
      SOURCELEN   = SOURCELEN
      KEY         = KEY
    IMPORTING
      DESTINATION = PASSWORD.

  CALL FUNCTION 'FTP_CONNECT'
    EXPORTING
      USER                   = USER
      PASSWORD               = PASSWORD
*   ACCOUNT                =
      HOST                   = HOST
      RFC_DESTINATION        = RFC_DESTINATION
*   GATEWAY_USER           =
*   GATEWAY_PASSWORD       =
*   GATEWAY_HOST           =
   IMPORTING
      HANDLE                 = HANDLE
   EXCEPTIONS
      NOT_CONNECTED          = 1
      OTHERS                 = 2
            .
  IF SY-SUBRC <> 0.
    RAISE NOT_CONNECTED.
    EXIT.
  ENDIF.

  CONCATENATE 'delete' FNAME INTO COMMAND SEPARATED BY SPACE.
  CALL FUNCTION 'FTP_COMMAND'
  EXPORTING
    HANDLE                  = HANDLE
    COMMAND                 = command
  TABLES
    DATA                    = RESULT
   EXCEPTIONS
     TCPIP_ERROR           = 1
     COMMAND_ERROR         = 2
     DATA_ERROR            = 3
     OTHERS                = 4.
  IF SY-SUBRC <> 0.
**    CASE SY-SUBRC.
**      WHEN 1.
**        RAISE TCPIP_ERROR.
**      WHEN 2.
**        RAISE COMMAND_ERROR.
**      WHEN 3.
**        RAISE DATA_ERROR.
**    ENDCASE.
  ENDIF.

  CALL FUNCTION 'FTP_COMMAND'
    EXPORTING
      HANDLE                = HANDLE
      COMMAND               = 'ascii'(003)
*   COMPRESS              =
*   RFC_DESTINATION       =
*   VERIFY                =
* IMPORTING
*   FILESIZE              =
*   FILEDATE              =
*   FILETIME              =
    TABLES
      DATA                  = RESULT
   EXCEPTIONS
     TCPIP_ERROR           = 1
     COMMAND_ERROR         = 2
     DATA_ERROR            = 3
     OTHERS                = 4
            .
  IF SY-SUBRC <> 0.
    CASE SY-SUBRC.
      WHEN 1.
        RAISE TCPIP_ERROR.
      WHEN 2.
        RAISE COMMAND_ERROR.
      WHEN 3.
        RAISE DATA_ERROR.
    ENDCASE.
  ENDIF.


    CALL FUNCTION 'FTP_R3_TO_SERVER'
    EXPORTING
      HANDLE               = HANDLE
      FNAME                = FNAME
*   BLOB_LENGTH          =
      CHARACTER_MODE       = 'X'
   TABLES
*      BLOB                 = SOURCTAB
      TEXT                 = SOURCTAB[]
     EXCEPTIONS
       TCPIP_ERROR          = 1
       COMMAND_ERROR        = 2
       DATA_ERROR           = 3
*   OTHERS               = 4
            .
  IF SY-SUBRC <> 0.
    CASE SY-SUBRC.
      WHEN 1.
        RAISE TCPIP_ERROR.
      WHEN 2.
        RAISE COMMAND_ERROR.
      WHEN 3.
        RAISE DATA_ERROR.
    ENDCASE.
  ENDIF.

  CALL FUNCTION 'FTP_DISCONNECT'
    EXPORTING
      HANDLE = HANDLE.





ENDFUNCTION.

Thanks & Regards.

Praveer.

Read only

Former Member
0 Likes
1,525

Use the following FM's

HTTP_SCRAMBLE

FTP_CONNECT

to create a connection to the ftp server.

With the FM FTP_COMMAND you can send native ftp commands like "cd" "put" "get".

Regards.

Read only

arindam_m
Active Contributor
0 Likes
1,525