ABAP - TIPP: Funktionsbaustein zum FTP Upload / Download
Posted: Fri Apr 16, 2004 2:41 pm
Diesee Funktionsbausteine können FTP Uploads und Downloads durchführen. Sie Nutzen die Funktion Betriebsystemkommandos auszuführen.
Setzen Sie SAP auf anderen Betriebsystemem müssen Sie den Systemcommand evlt. noch etwas anpassen.
Setzen Sie SAP auf anderen Betriebsystemem müssen Sie den Systemcommand evlt. noch etwas anpassen.
- Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
- FUNCTION Z_ftp_upload.
- *"----------------------------------------------------------------------
- *"*"Lokale Schnittstelle:
- *" IMPORTING
- *" REFERENCE(SRC_FILE)
- *" REFERENCE(DEST_FILE)
- *" REFERENCE(FTP_SERVER)
- *" REFERENCE(FTP_USER)
- *" REFERENCE(FTP_PASSWD)
- *" REFERENCE(FLAG_BINARY) OPTIONAL
- *" EXPORTING
- *" REFERENCE(SUCCESS_226)
- *" TABLES
- *" OUTPUT
- *" EXCEPTIONS
- *" COULD_NOT_OPEN_COMMANDFILE
- *"----------------------------------------------------------------------
- *-----------------------------------------------------------------------
- * DATENDEFINITION
- *-----------------------------------------------------------------------
- line(200),
- END OF syscalltab.
- *Temporärer Dateiname ermitteln.
- " 1. UUID erstellen
- CALL FUNCTION 'SYSTEM_UUID_C_CREATE'
- IMPORTING
- uuid = uuid.
- * FTP Kommandofile schreiben
- OPEN DATASET dsn FOR OUTPUT IN TEXT MODE.
- CONCATENATE 'user' ftp_user ftp_passwd
- INTO fl SEPARATED BY space.
- CLOSE DATASET dsn.
- * Betriebssystemkommando erstellen.
- INTO os_command SEPARATED BY space.
- CALL 'SYSTEM'
- ID 'COMMAND'
- FIELD os_command
- ID 'TAB'
- FIELD syscalltab-*sys*.
- * temporäres File wieder löschen.
- DELETE DATASET dsn.
- * FTP Rückmeldungen auswerten
- * 226 bedeutet File erfolgreich übertragen
- LOOP AT syscalltab.
- success_226 = 'X'.
- *-----------------------------------------------------------
- FUNCTION Z_FTP_DOWNLOAD.
- *"----------------------------------------------------------------------
- *"*"Lokale Schnittstelle:
- *" IMPORTING
- *" REFERENCE(SRC_FILE)
- *" REFERENCE(DEST_FILE)
- *" REFERENCE(FTP_SERVER)
- *" REFERENCE(FTP_USER)
- *" REFERENCE(FTP_PASSWD)
- *" REFERENCE(FLAG_BINARY) OPTIONAL
- *" EXPORTING
- *" REFERENCE(SUCCESS_226)
- *" TABLES
- *" OUTPUT
- *" EXCEPTIONS
- *" COULD_NOT_OPEN_COMMANDFILE
- *"----------------------------------------------------------------------
- *-----------------------------------------------------------------------
- * DATENDEFINITION
- *-----------------------------------------------------------------------
- line(200),
- END OF syscalltab.
- * Temporären Dateiname ermitteln.
- " UUID erstellen
- CALL FUNCTION 'SYSTEM_UUID_C_CREATE'
- IMPORTING
- uuid = uuid.
- * FTP Kommandofile schreiben
- OPEN DATASET dsn FOR OUTPUT IN TEXT MODE.
- CONCATENATE 'user' ftp_user ftp_passwd
- INTO fl SEPARATED BY space.
- CLOSE DATASET dsn.
- * Betriebssystemkommando erstellen.
- INTO os_command SEPARATED BY space.
- CALL 'SYSTEM'
- ID 'COMMAND'
- FIELD os_command
- ID 'TAB'
- FIELD syscalltab-*sys*.
- * temporäres File wieder löschen.
- DELETE DATASET dsn.
- * Ftp Rückmeldungen auswerten
- * 226 bedeutet File erfolgreich übertragen
- LOOP AT syscalltab.
- success_226 = 'X'.
- GeSHi ©