Schlüsselbefehle Open Dataset, Transfer Dataset und Close Dataset
Aus SAP-Wiki
(Weitergeleitet von Schlüsselbefehl Open Dataset)
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.