Angelegte Tabelle füllen aus der Textdatei

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

Angelegte Tabelle füllen aus der Textdatei

Beitrag von HH_ABAP (Specialist / 262 / 144 / 1 ) »
Hallo,

ich sollte eine angelegte Tabelle mit Daten aus der Text Datei füllen.
Die angelegte Tabelle heißt: ztb_met

Die Tabelle lt_met ist leer. Warum?

Code: Alles auswählen.

DATA: lt_met TYPE TABLE OF ztb_met.
....
.....
....

  CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
      filename                = gv_file
*      filetype 
      has_field_separator     = 'X'
*     HEADER_LENGTH           = 0
*     READ_BY_LINE            = 'X'
*     DAT_MODE                = ' '
*     CODEPAGE                = ' '
*     IGNORE_CERR             =
*     REPLACEMENT             =
*     CHECK_BOM               = ' '
*     VIRUS_SCAN_PROFILE      =
*     NO_AUTH_CHECK           = ' '
*    IMPORTING
*     FILELENGTH              =
*     HEADER                  =
    TABLES
      data_tab                = lt_met

Danke im Voraus!
VG

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


Re: Angelegte Tabelle füllen aus der Textdatei

Beitrag von PeterPaletti (Specialist / 348 / 32 / 97 ) »
Rate mal mit Rosenthal. Was weiß denn ich, warum.
Vielleicht ist die Datei leer. Vielleicht hat sie keinen Field-Separator. Vielleicht bricht der FuBa mit irgendeinem Fehlercode ab. Vielleicht oder aber oder auch nicht.

By the way.
Heutzutage werden meines Wissens die Methoden der Klasse CL_GUI_FRONTEND_SERVICES anstelle des FuBa verwendet.

Re: Angelegte Tabelle füllen aus der Textdatei

Beitrag von HH_ABAP (Specialist / 262 / 144 / 1 ) »
Ich vermute, weil die Datei zu Groß ist. Welche Lösungen gibt es für Große Datei?

Danke im Voraus!
VG

Re: Angelegte Tabelle füllen aus der Textdatei

Beitrag von HH_ABAP (Specialist / 262 / 144 / 1 ) »
ich habe geschafft die Tabelle lt_met mit Daten füllen.

Wie kann ich jetzt die Daten aus der lt_met in der Tabelle ztb_met importieren?

Danke im Voraus!
VG

Re: Angelegte Tabelle füllen aus der Textdatei

Beitrag von PeterPaletti (Specialist / 348 / 32 / 97 ) »
Öh, um Daten auf in einer DB-Tabelle zu speichern benutzt man üblicher Weise die passenden Statements wie insert, modify oder update in einem Verbucherbaustein.
Erwarten würde ich auch, dass man die Daten die man bekommt, nicht blind in die DB hineinklöppelt, sondern erstmal prüft.

Re: Angelegte Tabelle füllen aus der Textdatei

Beitrag von HH_ABAP (Specialist / 262 / 144 / 1 ) »
Ja, so viel weiß ich aber es klappt leider nicht. Bitte siehe den Screenshot und den Code.
Die Tabelle lt_ztb ist gefüllt mit Daten.

Code: Alles auswählen.

DATA: ls_ztb type ztb,
      lt_ztb type TABLE OF ztb.
...
...

insert ztb from TABLE lt_ztb.  -> Hier programm bricht ab(Exception) 
Danke im Voraus!
VG

Re: Angelegte Tabelle füllen aus der Textdatei

Beitrag von HH_ABAP (Specialist / 262 / 144 / 1 ) »
Jetzt wird nur erste Zeile in der Tabelle ZTAB importieren.

Wie kann ich die gesamte Daten aus der Tabelle lt_ztab in der Tabelle ZTAB importieten?

Danke.

Re: Angelegte Tabelle füllen aus der Textdatei

Beitrag von PeterPaletti (Specialist / 348 / 32 / 97 ) »
Rate mal mit Rosenthal. Ohne Quellcode schwer einzuschätzen.

Re: Angelegte Tabelle füllen aus der Textdatei

Beitrag von HH_ABAP (Specialist / 262 / 144 / 1 ) »
INSERT ztb FROM TABLE lt_ztb ACCEPTING DUPLICATE KEYS. Das klappt aber nur für eine Zeile.

Re: Angelegte Tabelle füllen aus der Textdatei

Beitrag von PeterPaletti (Specialist / 348 / 32 / 97 ) »
Aus der SAP-Hilfe:
Wenn der Zusatz ACCEPTING DUPLICATE KEYS angegeben ist, werden alle Zeilen eingefügt, für die dies möglich ist. Alle Zeilen, die zu doppelten Einträgen bezüglich des Primärschlüssel oder eines eindeutigen Sekundärindex führen würden, werden verworfen und sy-subrc wird auf 4 gesetzt. Der Zusatz ACCEPTING DUPLICATE KEYS bedeutet nicht, dass doppelte Schlüsseleinträge im Wortsinn akzeptiert werden. Insbesondere wird nicht wie bei MODIFY eine Änderung an einem vorhandenen Eintrag vorgenommen. Statt dessen verhindert ACCEPTING DUPLICATE KEYS das Auftreten der zugehörigen Ausnahme und setzt statt dessen den Rückgabewert sy-subrc auf 4.

Du hast einfach doppelte Schlüsseleinträge in deiner internen Tabelle. Würdest du den Inhalt vor dem Speichern prüfen, würde das auffallen.

Re: Angelegte Tabelle füllen aus der Textdatei

Beitrag von HH_ABAP (Specialist / 262 / 144 / 1 ) »
ja, ich habe viele doppelte schlüssel aber sollte irgendwie klappen, oder? siehe bitte den Screenshot.

Re: Angelegte Tabelle füllen aus der Textdatei

Beitrag von HH_ABAP (Specialist / 262 / 144 / 1 ) »
wenn ich in der Tabelle ZTAB den Haken für Schlüssel wegnehme, bekomme ich Fehlermeldugn. Was kann ich tun?

Re: Angelegte Tabelle füllen aus der Textdatei

Beitrag von DeathAndPain (Top Expert / 1939 / 257 / 412 ) »
Aus meiner Sicht deutet das darauf hin, dass die ZTB-Tabelle vermutlich einen unsachgemäß gewählten Primärschlüssel hat, wenn er unterschiedliche Zeilen mit demselben Primärschlüssel darin speichern möchte. Es sei denn, seine Uploadzeilen sind inhaltlich fehlerhaft.

@HH_ABAP: Ich kann verstehen, dass Du hier keine Firmengeheimnisse ausbreiten möchtest, aber der Primärschlüssel der Tabelle ist an dieser Stelle schon eine wichtige Information. Auch mehr über die Tabellenzeilen zu wissen, die Du einfügen möchtest, wäre gut.

Wenn der Schlüssel in Ordnung ist und Zeilen, zu deren Schlüssel es schon etwas in der Datenbanktabelle gibt, einfach nur aktualisiert werden sollen, kannst Du statt INSERT den Befehl MODIFY verwenden. Der fügt hinzu, wenn es die Zeile noch nicht gibt und ändert, wenn es sie schon gibt.

Aber wie gesagt: Voraussetzung ist, dass Deine Tabellenschlüssel durchdacht sind und Du weißt, was Du tust.
ja, ich habe viele doppelte schlüssel aber sollte irgendwie klappen, oder?
Nein, Du kannst in eine Datenbanktabelle auf keinen Fall zwei Zeilen mit demselben Primärschlüssel einfügen. Wenn dies dennoch notwendig ist, dann ist das IMMER ein Zeichen dafür, dass bei der Definition der Tabelle der Primärschlüssel falsch gewählt worden ist.

Im einfachsten Falle kannst Du dem Primärschlüssel einfach eine Spalte "Laufende Nummer" hinzufügen und die dann für jede neue Zeile um 1 erhöhen. Dann ist der Schlüssel eindeutig. Ob das freilich für Deinen Anwendungsfall auch Sinn ergibt, können wir hier aufgrund der von Dir gebotenen Informationen nicht beurteilen. Dazu müssten wir schon wissen, wie die Tabelle genau definiert ist und was genau damit gemacht werden soll.

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


Seite 1 von 1

Vergleichbare Themen

2
Antw.
2117
Views
Tabelle in Textdatei - Struktur unbekannt
von svenk » 15.01.2008 12:18 • Verfasst in ABAP® für Anfänger
1
Antw.
4362
Views
Textdatei in interne Tabelle lesen
von meocon » 03.09.2008 16:19 • Verfasst in ABAP® für Anfänger
7
Antw.
323
Views
6
Antw.
4075
Views
Range Tabelle vom Typ RRRANGESID in eine DB-Tabelle füllen
von kaim77 » 15.09.2014 12:32 • Verfasst in ABAP® Core
2
Antw.
1730
Views
dyn. Tabelle füllen
von Thorsten » 09.03.2005 16:46 • Verfasst in ABAP® Core

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.

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
vor 10 Stunden von Bright4.5 1 / 215
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 1858
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8460