beliebige csv-Datei einlesen - dynamische workarea

Getting started ... Alles für einen gelungenen Start.
21 Beiträge • Vorherige Seite 2 von 2 (current)
21 Beiträge Vorherige Seite 2 von 2 (current)

Beitrag von pohlmann-schwarza (ForumUser / 91 / 0 / 0 ) »
Hallo, das Problem ist doch noch nicht ganz vom Tisch.

Die csv-datei hab ich in zwei interne Tabellen aufgeteilt. Eine enthält die Zeilen und die andere die Spalten zur jeweiligen gewünschten Zeile. Damit kann ich gut leben. :wink:

Probleme bereitet mir nun die Datenbanktabelle. :(
Wenn Du eine interne Tabelle analog der Datenbanktabelle definierst...
Da die Datenbanktabelle auf die ich Bezug nehme auch erst zur Laufzeit angegeben wird ist das nicht so einfach.
Müsste ich diese interne Tabelle etwa dynamisch erzeugen?

Wäre über jede alternative Idee dankbar.
Das mit der dynamischen Tabelle erscheint mit ziemlich kompliziert.

Viele Grüße

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


Beitrag von pohlmann-schwarza (ForumUser / 91 / 0 / 0 ) »
Hab mich dazu durchgerungen die dynamische Geschichte noch mal zu probieren. Leider bekomme ich ein Problem mit dem Feldkataolg. Im Forum wurde zum Auslesen der FuBa 'Reuse_Alv_Fieldcatalog_Merge" empfohlen. Leider kann ich diesen dann nicht an create_dynamic_table übergeben.

Code: Alles auswählen.

TYPE-POOLS: slis. 
DATA int_fcat TYPE slis_t_fieldcat_alv.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
       EXPORTING
            i_structure_name       = tabellenname
       CHANGING
            ct_fieldcat            = int_fcat
       EXCEPTIONS
            inconsistent_interface = 1
            program_error          = 2
            OTHERS                 = 3.

CALL METHOD cl_alv_table_create=>create_dynamic_table
    EXPORTING
      it_fieldcatalog = int_fcat
    IMPORTING
      ep_table        = it_tab1

"INT_FCAT" ist nicht typkompatibel zum formalen Parameter it_fieldcatalog"
Wie kann ich meinen Feldkatalog anpassen das create_dynamic_table damit zurecht kommt?

Viele Grüße
Michael

Beitrag von babap (Expert / 681 / 1 / 1 ) »
Hallo,

es gibt zwei unterschiedliche Formate für den Feldkatalog.

Probier mal den 'LVC_FIELDCATALOG_MERGE'.

Gruß
babap
P.S. trotzdem bin ich sicher, daß man hier keine variable Struktur benötigt, sondern einen "Variablen MOVE", der aus deinem Tabellenkonstrukt etwas in die dann (durch wen auch immer) gewählte Datenbanktabelle "schiebt" ...
P.P.S und etwas ungeprüft (Transaktion, BAPI) "in eine DB-Tabelle schieben" hat schon etwas "harakiri"-mäßiges ...

Beitrag von pohlmann-schwarza (ForumUser / 91 / 0 / 0 ) »
Das mit dem Feldkatalog hat funktioniert! Danke für den Tipp.

Nun steh ich allerdings vor dem Problem meine Tabelle gezielt auszulesen.
Die interne Tabelle steht hinter dem Feldsymbol: <it_tab1>.
Gefüllt hab ich sie so:

Code: Alles auswählen.

 SELECT * FROM (wa_tabellenname) INTO <wa_tab1>.
          APPEND <wa_tab1> TO <it_tab1>.
        ENDSELECT.
Nun würde ich sie gern über: READ <it_tab1> FROM <wa_itab1> auslesen.
Dazu muss aber <wa_itab1> entsprechend gefüllt werden und das gelingt mir nicht.

<wa_tab1>-Komponente = it_externspalte-feld.

Liefert den Fehler: Das Datenobjekt <wa_tab1> besitzt keine Strucktur...
Im Debugger seh ich die Strucktur aber. Wie kann ich auf einzelne Komponenten zugreifen.

Deklariert ist <wa_tab1> so:

Code: Alles auswählen.

DATA wa_tab1    TYPE REF TO data.
FIELD-SYMBOLS: <wa_tab1>   TYPE ANY.

CREATE DATA wa_tab1 TYPE (wa_tabellenname).
ASSIGN wa_tab1->* TO <wa_tab1>.
Viele Grüße
Michael[/code]

Beitrag von pohlmann-schwarza (ForumUser / 91 / 0 / 0 ) »
Guten morgen, konnte mittlerweile feststellen das dieses Problem wohl an der Deklaration des Feldsymbols liegt:

Code: Alles auswählen.

FIELD-SYMBOLS: <wa_tab1>   TYPE ANY
Wenn ich anstelle von TYPE ANY eine Datenbank einsetze (TYPE SPFLI), funktioniert das zugreifen auf die Komponenten.

Leider kann ich die Tabelle aber nicht angeben, da sie erst zur Laufzeit angegeben wird.

Wie muss das Feldsymbol richtig deklariert werden? Bzw. was muss ich tun um auf die Komponenten zugreifen zu können?

Beitrag von pohlmann-schwarza (ForumUser / 91 / 0 / 0 ) »
Hab mittlerweile was gefunden:

Code: Alles auswählen.


ASSIGN COMPONENT wa_zuordnung-komponente
        OF STRUCTURE <wa_tab1> TO <komponente>.

Funktioniert super!

Viele Grüße
Michael

Vergleichbare Themen

1
Antw.
1673
Views
Einfache Workarea in komplexe Workarea kopieren
von dawns » 04.07.2007 14:11 • Verfasst in ABAP® für Anfänger
0
Antw.
3960
Views
xml Datei einlesen
von Rabea1103 » 05.03.2009 13:58 • Verfasst in ABAP® Core
1
Antw.
8768
Views
Excel Datei einlesen
von kostonstyle » 11.12.2006 11:26 • Verfasst in ABAP® für Anfänger
0
Antw.
1325
Views
XML-Datei in Kundenauftrag einlesen
von Lori » 02.02.2021 07:14 • Verfasst in Sales and Distribution
19
Antw.
14268
Views
Excel-Datei einlesen
von Zubasa » 01.10.2010 14:16 • Verfasst in ABAP Objects®

Aktuelle Forenbeiträge

Regex in where
vor 5 Stunden von black_adept 2 / 57
Programm anlegen mit Vorlage
vor 11 Stunden von DeathAndPain 2 / 111
IT0024 Qualifikationen CP-ID
vor 12 Stunden von DeathAndPain 2 / 351
BUSOBJEKT zu CMIS PHIO ermitteln
vor 13 Stunden von snooga87 1 / 84

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.

Aktuelle Forenbeiträge

Regex in where
vor 5 Stunden von black_adept 2 / 57
Programm anlegen mit Vorlage
vor 11 Stunden von DeathAndPain 2 / 111
IT0024 Qualifikationen CP-ID
vor 12 Stunden von DeathAndPain 2 / 351
BUSOBJEKT zu CMIS PHIO ermitteln
vor 13 Stunden von snooga87 1 / 84

Unbeantwortete Forenbeiträge

BUSOBJEKT zu CMIS PHIO ermitteln
vor 13 Stunden von snooga87 1 / 84
aRFC im OO-Kontext
vor 5 Wochen von ralf.wenzel 1 / 3260
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9821