Schlüsselbefehle Open Dataset, Transfer Dataset und Close Dataset
Aus SAP-Wiki
Zur Navigation springenZur Suche springen
Siehe Schlüsselbefehle Open Dataset, Read Dataset und Close Dataset.
Mit der Kombination der 3 Schlüsselbefehle "Open Dataset", "Transfer Dataset" und "Close Dataset" können Daten (meist als Text-Datei) auf den Applikationsserver geschrieben werden.
- Open Dataset = öffnet eine Datei auf dem Applikationsserver
- Transfer Dataset = schreibt Daten in die Datei
- Close Dataset = schließt die Datei wieder.
Coding (Beispiel CSV-Datei)
TYPES: BEGIN OF ty_csv, line TYPE c LENGTH 1000. TYPES: END OF ty_csv. TYPES: tty_csv TYPE STANDARD TABLE OF ty_csv. *&---------------------------------------------------------------------* *& Form DOWNLOAD *&---------------------------------------------------------------------* * Download konvertiertes CSV-File auf Applikations-Server *----------------------------------------------------------------------* FORM download_file_appserver USING iv_file TYPE rlgrap-filename it_csv TYPE tty_csv. DATA: lv_filename TYPE string. lv_filename = iv_file. * Öffne Text-Datei OPEN DATASET lv_filename FOR OUTPUT IN TEXT MODE ENCODING DEFAULT. IF sy-subrc <> 0. MESSAGE i011(/aif/mes) WITH iv_file. "Datei &1 konnte nicht in Datenbank gesichert werden ELSE. * Speichere jede Zeile in Textdatei auf Applikations-Server LOOP AT it_csv ASSIGNING FIELD-SYMBOL(<fs_csv>). TRANSFER <fs_csv> TO lv_filename. ENDLOOP. * Schließe Text-Datei CLOSE DATASET lv_filename. IF sy-subrc <> 0. MESSAGE ID sy-msgid "Nachrichtenklasse TYPE sy-msgty "Typ (E = Error, S = Success, I = Info, A = Abbruch) NUMBER sy-msgno "Nachrichtennummer WITH sy-msgv1 "Platzhaltervariable1 sy-msgv2 "Platzhaltervariable2 sy-msgv3 "Platzhaltervariable3 sy-msgv4. "Platzhaltervariable4 MESSAGE i800(29) WITH iv_file. "Die sequentielle Datei & konnte nicht geöffnet werden MESSAGE i821(29). "Verarbeitung wurde abgebrochen LEAVE PROGRAM. ELSE. MESSAGE i071(dmee) WITH iv_file. "Die Datei & wurde erfolgreich gespeichert ENDIF. ENDIF. ENDFORM. " download_file_appserver
Coding (Beispiel PDF-Datei)
data: lv_returncode type inri-returncode, lv_myfile type string, lv_bintab like line of pit_merge_bintab, lv_mess type string. lv_myfile = 'TEST.PDF'. * Speichern PDF-Datei auf Applikationsserver open dataset lv_myfile for output in binary mode message lv_mess. "Datei wird geöffnet if sy-subrc <> 0. message e531(0u) with lv_mess. "Datei konnte vom Betriebssystem nicht geöffnet werden endif. loop at pit_bintab into lv_merge_bintab. transfer lv_bintab to lv_myfile. "Inhalt wird in Datei geschrieben endloop. close dataset lv_myfile. "Datei wird geschlossen message i532(0u) with 'Datei wurde auf Applikationsserver gespeichert'.
Methode PDF auf Applikationsserver speichern
Trennzeichen in Datei
- Als Trennzeichen in der Datei wird meist ein "|" oder ein ";" verwendet.
- Diese Zeichen dürfen dann in den Feldern nicht auftauchen, sonst werden die Felder nicht mehr sinnvoll getrennt.