Code: Alles auswählen.
REPORT zcsvdaten2 NO STANDARD PAGE HEADING.
DATA: dateiname TYPE string, "Erstelle Variable vom Typ String
dateitabelle TYPE filetable, "obligatorisch, 0 zeilige stringtabelle
anzdat TYPE i, "Anzahl der Verarbeiteten Datein (-1 bei abbruch)
temp TYPE i.
PARAMETER csvdatei TYPE filename OBLIGATORY. "für die csv Datei
AT SELECTION-SCREEN ON VALUE-REQUEST FOR csvdatei. "Erlaube F4-Auswahl
CALL METHOD cl_gui_frontend_services=>file_open_dialog( "Methode zur Auswahl der csv Datei
EXPORTING
window_title = 'Datei auswählen' "qol Anzeige
default_filename = '*.csv' "nur csv Dateien können gewählt werden
file_filter = '*.csv'
CHANGING
file_table = dateitabelle "obligatorisch Changing Parameter bestimmen
rc = anzdat
EXCEPTIONS "exceptions nummerieren
file_open_dialog_failed = 1 "Wenn die Datei nicht geöffnet werden kann
cntl_error = 2 "Kontrollfehler
error_no_gui = 3 "Kein GUI
not_supported_by_gui = 4 "Keine Unerstützung vom GUI
OTHERS = 5 ). "anderes abfangen
IF sy-subrc = 0. "Wenn keine Exception ausgelöst wurde
READ TABLE dateitabelle INTO csvdatei INDEX 1. "schreibe Dateitabelle in den Parameter
ENDIF.
START-OF-SELECTION.
dateiname = csvdatei. "Dateiname wird zur ausgewählten csv Datei
CALL FUNCTION 'GUI_UPLOAD' "Hochladen der Datei
EXPORTING
filename = dateiname "Die entsprechende Datei auswählen
TABLES
data_tab = dateitabelle. "Alles in dateitabelle speichern
END-OF-SELECTION.
DESCRIBE TABLE dateitabelle LINES temp.
IF temp = 1.
WRITE: 'Es wurde eine Zeile der Datenbank hinzugefügt'.
ELSEIF temp > 1.
WRITE: 'Es wurden ' && temp && ' Zeilen der Datenbank hinzugefügt'.
ELSE.
WRITE: 'Fehler bei der Speicherung'.
ENDIF.
das mit INTO habe ich auch schon gesehen und probiert, nur weiß ich leider nicht genau wie mein wa aussehen muss. Ich hatte es so versucht:a-dead-trousers hat geschrieben:Beim LOOP AT fehlt INTO oder ASSIGNING. (Weitere Infos dazu siehe ABAP-Hilfe)
Wie man strkturierte Daten aus einer Datei in einer DB-Tabelle schaufelt, dafür gibt hunderte Anleitungen im Netz und auch hier im Forum.
Bitte suchen und dann bei konkreten Verständnisproblemen nachfragen! Danke!
lg ADT
Code: Alles auswählen.
Data: Dateitabelle2 like line of Dateitabelle
"...
LOOP AT dateitabelle INTO dateitabelle2.
INSERT INTO yomi VALUES dateitabelle2. "Yomi ist der Name meiner Datenbank
ENDLOOP.
Wirklich hilfreich sind die Links nicht :/ Mit der Methode CL_RSDA_CSV_CONVERTER=>csv_to_structure komme ich irgendwie nicht zurecht. Ich muss lediglich CSV Datein einlesen können. Kannst du mir nicht ein kleines Code Beispiel schreiben für das Speichern einer CSV Datei auf einer Datenbank?a-dead-trousers hat geschrieben:Klar, weil noch die Umwandlung der Struktur aus deiner Datei auf die deiner Datenbanktabelle fehlt.
ABAP weiß ja (noch) nicht an welcher Position oder wie auch immer die Daten in der Datei drinnen stehen und kann auch diese nicht dementsprechend in die Datenbank übertragen. Das musst du noch programmieren.
Da es dazu aber unzählige Möglichkeiten (XLS, CSV, XML uvm.) gibt, würde das hier den Rahmen etwas sprengen.
Wie schon gesagt: Such im Internet oder hier im Forum nach Codebeispielen.
Kurzer Überblick was es dazu alles gibt:
XLS --> ABAP2XLSX: http://ivanfemia.github.io/abap2xlsx/
XML --> Klasse CL_IXML in SAP (Beispiele dazu sind unter dem Stichwort IF_IXML bzw. SAP DOM im Internet zu finden)
CSV --> Aktuelles Thema: http://www.abapforum.com/forum/viewtopi ... =1&t=20921
Wenn da nichts passendes dabei ist schau dir die Befehl SPLIT und FIND in der ABAP-Hilfe genauer an.
Auch könnte der OFFSET "+" und LÄNGE "()" Zugriff auf Feldinhalte für dein Vorhaben benötigt werden. Weitere Infos sind ebenfalls der Hilfe zu entnehmen.
lg ADT
Frag doch deinen Prof oder Betreuer ob er das nicht für dich machen will. Der weiß auch viel besser was du beachten musst.schligger hat geschrieben: Kannst du mir nicht ein kleines Code Beispiel schreiben für das Speichern einer CSV Datei auf einer Datenbank?
Wenn du mal alle Angaben posten würdest, die wichtig sind, könnte man dir evtl. Helfen.schligger hat geschrieben:Kannst du mir nicht ein kleines Code Beispiel schreiben für das Speichern einer CSV Datei auf einer Datenbank?