Bester Weg, CSV zu importieren

Getting started ... Alles für einen gelungenen Start.
8 Beiträge • Seite 1 von 1
8 Beiträge Seite 1 von 1

Bester Weg, CSV zu importieren

Beitrag von Legxis (Specialist / 160 / 90 / 28 ) »
Hallo zusammen,

ich muss mich gerade entscheiden, auf welche Weise ich eine CSV Datei in eine itab importiere. Es handelt sich dabei um eine simple Massenpflege.
Daher wollte ich fragen, welche Möglichkeiten ihr benutzt.
Ich habe dazu bereits folgendes gefunden:

Möglichkeiten zum Upload:
  1. - cl_gui_frontend_services=>gui_upload
    - KCD_CSV_FILE_TO_INTERN_CONVERT (Datei kann nicht vom Applikationsserver geladen werden, wäre bei mir ok)
    - ALSM_EXCEL_TO_INTERNAL_TABLE
Möglichkeiten zum Formatieren:
  • - selbst schreiben mit SPLIT (und ggf. Regex)
    - TEXT_CONVERT_CSV_TO_SAP
    - RSDS_CONVERT_CSV
    - CL_RSDA_CSV_CONVERTER
Ich wäre dankbar für ein paar Antworten, ich kann mich wirklich nicht entscheiden, welches die beste Lösung wäre. Und alle auszuprobieren dauert ja auch sehr lange.
( SAP ECC 6.0, NetWeaver 7.0, ohne unicode, ohne support/enhancement packages )

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Bester Weg, CSV zu importieren

Beitrag von DeathAndPain (Top Expert / 1923 / 251 / 408 ) »
In einem zugegebenermaßen älteren Programm, in das ich grad mal reingeschaut habe, wird der KCD_CSV_FILE_TO_INTERN_CONVERT verwendet. Sieht sehr elegant aus, da man außer dem FB-Aufruf nix machen muss und direkt seine interne Tabelle mit den Spaltenwerten hat.

Re: Bester Weg, CSV zu importieren

Beitrag von black_adept (Top Expert / 4069 / 120 / 934 ) »
Upload und Umwandlung trennen, da du das dann besser wiederverwerten kannst.
Zum Trennen verwende ich inzwischen die Konverterklasse - die ist sehr einfach und effektiv.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Bester Weg, CSV zu importieren

Beitrag von DeathAndPain (Top Expert / 1923 / 251 / 408 ) »
Upload und Umwandlung trennen, da du das dann besser wiederverwerten kannst.
Warum? Wir reden vom einfachen Import einer CSV-Datei. Da den direkt mit Aufruf eines FB realisieren kann, dann gibt es keinen Aufwand, den man wiederverwertbar gestalten müsste.

Folgende Benutzer bedankten sich beim Autor DeathAndPain für den Beitrag:
Daniel


Re: Bester Weg, CSV zu importieren

Beitrag von black_adept (Top Expert / 4069 / 120 / 934 ) »
DeathAndPain hat geschrieben:
Upload und Umwandlung trennen, da du das dann besser wiederverwerten kannst.
Warum? Wir reden vom einfachen Import einer CSV-Datei. Da den direkt mit Aufruf eines FB realisieren kann, dann gibt es keinen Aufwand, den man wiederverwertbar gestalten müsste.
Der Fuba KCD_CSV_FILE_TO_INTERN_CONVERT
  • ist nicht freigegeben
  • nicht dokumentiert
  • Es fehlt ein Eingabeparameter für Textbegrenzer
  • Der Dateiname kann keine längeren vollständigen Pfade verarbeiten
  • Es können nur Werte mit bis zu 32 Zeichen eingelesen werden
Ich glaube das reicht an Mankos

Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag:
Legxis

live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Bester Weg, CSV zu importieren

Beitrag von IHe (Specialist / 150 / 35 / 49 ) »
Ich habe mit dem CL_RSDA_CSV_CONVERTER gute Erfahrungen gemacht. Die Verwendung ist auch recht simpel und der Code gut lesbar.

Enno hatte dazu mal ein kleines Beispiel veröffentlicht: https://www.tricktresor.de/blog/umwandl ... uktur-csv/
Ingo Hoffmann

ECC|S/4HANA|BTP
dbh SAP Solutions

Re: Bester Weg, CSV zu importieren

Beitrag von DeathAndPain (Top Expert / 1923 / 251 / 408 ) »
black_adept hat geschrieben: Der Fuba KCD_CSV_FILE_TO_INTERN_CONVERT
  • ist nicht freigegeben
  • nicht dokumentiert
  • Es fehlt ein Eingabeparameter für Textbegrenzer
  • Der Dateiname kann keine längeren vollständigen Pfade verarbeiten
  • Es können nur Werte mit bis zu 32 Zeichen eingelesen werden
Ich glaube das reicht an Mankos
Wenn Du nur Fubas verwenden würdest, die offiziell "freigegeben" sind, dann würdest Du in SAP so manches Rad neu erfinden müssen. Das nimmt doch schon lange keiner mehr ernst, zumal es auch genug "freigegebene" Fubas gibt, die seltsame Ecken und Kanten in ihrem Verhalten haben, die ich mit mangelnder Reife begründen würde, von teilweise miserabler Doku ganz zu schweigen.

Ein Dateipfad von 128 Zeichen reicht für meine Belange vollständig aus. Was den Rest angeht, ja, es ist ein einfacher, älterer Baustein, und wenn man da weitergehende Anforderungen hat, dann wird man zu etwas anderem greifen müssen. Ich bin aber nur selten in der Verlegenheit, Textbegrenzer innerhalb meiner Einlesespalten zu benötigen oder Spalten von mehr als 32 Zeichen Länge einlesen zu müssen. Wenn man mit diesen Einschränkungen leben kann, dann hat man den Riesenvorteil, dass er Baustein extrem kurz und einfach zu handhaben ist, ohne dass man vorher irgendwelche komplexen Strukturen oder Objekte aufbauen muss, über die man seine Werte dann auf kryptische Weise übergibt, wie das so bei "modernen" Klassen und Methoden üblich ist. Man hat mit diesem Baustein einfach ein Werkzeug in der Hand, mit dem man dem Job extrem schnell, einfach und im Code auch übersichtlich erledigt kriegt.

Selbst bei dem von IHe genannten CL_RSDA_CSV_CONVERTER, der in der Tat auch recht einfach und übersichtlich ist, muss man erst mal ein Klassenobjekt definieren und "kreieren", bevor man es dann nutzen kann, um die eigentliche Wandlung durchzuführen. Solche Faxen braucht man bei dem Fuba nicht. Den ruft man einfach auf und fertig ist der Lack.

Folgende Benutzer bedankten sich beim Autor DeathAndPain für den Beitrag:
Daniel


Re: Bester Weg, CSV zu importieren

Beitrag von black_adept (Top Expert / 4069 / 120 / 934 ) »
DeathAndPain hat geschrieben: Ein Dateipfad von 128 Zeichen reicht für meine Belange vollständig aus. [...] oder Spalten von mehr als 32 Zeichen Länge einlesen zu müssen.
IMHO sind das aber beides schon sehr starke Einschränkungen.
DeathAndPain hat geschrieben:[...]ohne dass man vorher irgendwelche komplexen Strukturen oder Objekte aufbauen muss, über die man seine Werte dann auf kryptische Weise übergibt, wie das so bei "modernen" Klassen und Methoden üblich ist. [...]
Selbst bei dem von IHe genannten CL_RSDA_CSV_CONVERTER, der in der Tat auch recht einfach und übersichtlich ist, muss man erst mal ein Klassenobjekt definieren und "kreieren", bevor man es dann nutzen kann, um die eigentliche Wandlung durchzuführen. Solche Faxen braucht man bei dem Fuba nicht. Den ruft man einfach auf und fertig ist der Lack.

Code: Alles auswählen.

DATA: ls_r_bukrs TYPE bukrs_ran.
cl_rsda_csv_converter=>create( i_separator = ';' )->csv_to_structure( EXPORTING i_data = 'I;BT;1000;2000' IMPORTING e_s_data = ls_r_bukrs ).
oder

Code: Alles auswählen.

data(lo_csv) = cl_rsda_csv_converter=>create( i_separator = ';' ).
loop at ... assigning field-symbol(zeile)
lo_csv->csv_to_structure( EXPORTING i_data = zeile IMPORTING e_s_data = my_structure )
endloop.
Ist das jetzt wirklich kryptischer oder unübersichtlicher als der FuBa-Aufruf ? Mächtiger ist es allemal und ich hatte vorhin übrigens nicht alle Mankos aufgezählt nur ein paar die mir direkt aufgefallen waren.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Seite 1 von 1

Vergleichbare Themen

2
Antw.
1386
Views
ToC importieren
von jokabi » 16.12.2014 09:54 • Verfasst in ABAP® für Anfänger
5
Antw.
8256
Views
1
Antw.
1482
Views
SQL Express importieren
von Neroringer » 04.04.2007 12:24 • Verfasst in ABAP® Core
7
Antw.
19905
Views
Bilder importieren in SAPScript
von Steffi221185 » 28.11.2007 14:07 • Verfasst in ABAP® Core
1
Antw.
3834
Views
Ausländische Bankenstammdaten importieren
von chatty » 06.06.2007 16:31 • Verfasst in Financials

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.