FTP desde Sap

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • mekachu
    Member
    • abr
    • 52

    #1

    FTP desde Sap

    Hola :

    Estoy haciendo un programa que debe traer un fichero desde un servidor externo al servidor Sap, mediante FTP.

    Sé que se puede ejecutar un comando de SO desde la tr. SM49, pero no tengo ni idea de cómo funciona. También me han contado que se puede ejecutar un script de Unix que haga eso pero con más comando ( estoy pensando en cd, mget ... ) y me gustaría saber cómo.

    Gracias.
  • nenuke
    Member
    • sep
    • 87

    #2
    Hola,

    tenía este código por ahi....echale un vistazo a ver si te da una idea.

    Código:
    REPORT ZFTP .
    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 'ftp.yahoo.es'.
    CONSTANTS: V_USER(64) TYPE C VALUE 'user'.
    CONSTANTS: V_PWD(64) TYPE C VALUE 'password'.
    
    START-OF-SELECTION.
    V_PATH = '\\APP_SERVER\INTERFACE\TEMP\'.
    V_FILE = '1.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.
    
    * To convert password into encrypted password
    
    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
    Un saludo.

    Comentario

    • Raymundo_fl
      Junior Member
      • sep
      • 3

      #3
      ftp

      Hola:

      Tengo el mismo problema necesito pasar un archivo de un sistema SAP a otro que no tiene SAP solo unix y esa funcion que ponen ahi como que a fuerza requiere una rfc destino osea otro sistema SAP, me podria decir como puedo hacerlo, no se tal vez usando comandos del sistema operativo desde ABAP?? saludos y gracias.
      Raymond

      Comentario

      • mekachu
        Member
        • abr
        • 52

        #4
        Gracias

        Hola :

        Me pasa lo mismo que a él.

        El sistema destino es Sap, pero los ficheros que tengo que traer están en una máquina Unix.Mi idea era hacerlo con un comando de sistema operativo, pero dado que no es solo comando , sino un script lo que tengo que ejecutar, no sé cómo hacerlo desde Sap.

        Pero gracias por el código.

        Comentario

        • julk32
          Junior Member
          • ago
          • 7

          #5
          Importar archivos desde servidor sftp externo a sap

          Cordial saludo,

          Saen como solucionarlo?
          LA verdad me encuentro en la misma situación tengo que importar desde un servidor sftp externo unix unos archivos xml a sap, me han dicho que con estas funciones:
          HTTP_SCRAMBLE
          FTP_CONNECT
          FTP_COMMAND
          FTP_DISCONNECT

          Agradezco cualquier ayuda!

          Saludos.

          Comentario

          Trabajando...