Tabellenstruktur erzeugen aus Parameter-Wert

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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

Tabellenstruktur erzeugen aus Parameter-Wert

Beitrag von Patrick1982 (ForumUser / 33 / 4 / 0 ) »
Moin,

ich habe folgendes Problem:
Und zwar habe ich einen Selection-Screen, auf dem der Anwender den Namen einer beliebigen DB-Tabelle eintragen kann. Also ganz einfach:

Code: Alles auswählen.

PARAMETERS: p_table TYPE tabname.
Im Verarbeitungsblock möchte ich dann eine Struktur aufbauen, die der eingetragenen Tabelle entspricht, also sowas wie

Code: Alles auswählen.

DATA: itab TYPE „Wert aus p_table“.
Nur dass ich hier eben nicht TYPE p_table wählen kann, weil der Datentyp des Parameters natürlich TABNAME und nicht eine Tabellenstruktur ist.

Ich hoffe, ihr habt mein Problem verstanden und eine Lösung für mich.
Besten Dank!
Patrick

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



Re: Tabellenstruktur erzeugen aus Parameter-Wert

Beitrag von DeathAndPain (Top Expert / 1952 / 259 / 413 ) »
Deine Antwort ist gut und richtig. Dennoch bin ich neugierig, ob er das immer noch machen möchte, wenn er gelesen hat, wie kompliziert das ist. 😁 Aber geht halt nicht anders. Wenn man den Typ nicht statisch angeben kann, muss man mit Datenreferenzen arbeiten.

Wobei ich persönlich der Meinung bin, dass das in ABAP nicht schön gelöst ist. Verweise auf Speicherbereiche stammen aus der Zeit von Assembler. Selbst Basic hatte sie schon hinter sich gelassen. Da sollte sich eine Abstraktion finden lassen, die es erlaubt, trotzdem mit einem konkret benamten Datenfeld dynamisch deklarierten Typs zu arbeiten, anstatt Referenzen auf Speicherbereiche zu erzeugen, in denen ein Datenobjekt schwebt, das ohne diese Referenzen aufhört zu existieren.

Re: Tabellenstruktur erzeugen aus Parameter-Wert

Beitrag von black_adept (Top Expert / 4099 / 128 / 941 ) »
DeathAndPain hat geschrieben:
17.02.2020 13:31
Dennoch bin ich neugierig, ob er das immer noch machen möchte, wenn er gelesen hat, wie kompliziert das ist.
Das ist nicht schwierig sondern 1 Daten- und eine Feldsymboldeklaration und 2 (kurze) Zeilen Code ganz ohne RTTI

Code: Alles auswählen.

REPORT.

DATA: lr_data TYPE REF TO data.
FIELD-SYMBOLS: <lt_data> TYPE STANDARD TABLE.

PARAMETERS: tabname TYPE tabname DEFAULT 'T005'.

CREATE DATA lr_data TYPE STANDARD TABLE OF (tabname) WITH NON-UNIQUE DEFAULT KEY.
ASSIGN lr_data->* TO <lt_data>.
BREAK-POINT.

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

live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Tabellenstruktur erzeugen aus Parameter-Wert

Beitrag von ewx (Top Expert / 4849 / 313 / 642 ) »
Stimmt! Warum kompliziert, wenn es auch einfach geht...

Re: Tabellenstruktur erzeugen aus Parameter-Wert

Beitrag von Patrick1982 (ForumUser / 33 / 4 / 0 ) »
black_adept hat geschrieben:
17.02.2020 13:40
Das ist nicht schwierig sondern 1 Daten- und eine Feldsymboldeklaration und 2 (kurze) Zeilen Code ganz ohne RTTI

Code: Alles auswählen.

REPORT.

DATA: lr_data TYPE REF TO data.
FIELD-SYMBOLS: <lt_data> TYPE STANDARD TABLE.

PARAMETERS: tabname TYPE tabname DEFAULT 'T005'.

CREATE DATA lr_data TYPE STANDARD TABLE OF (tabname) WITH NON-UNIQUE DEFAULT KEY.
ASSIGN lr_data->* TO <lt_data>.
BREAK-POINT.
Moin!
Vielen Dank schon mal für diesen tollen Lösungsansatz! Das klappt auch schon fast ganz wunderbar.
Ich habe nach dem selben System auch eine Struktur aufgebaut:

Code: Alles auswählen.

  CREATE DATA lr_table TYPE STANDARD TABLE OF (p_table) WITH NON-UNIQUE DEFAULT KEY.
  ASSIGN lr_table->* TO FIELD-SYMBOL(<lt_table>).

  CREATE DATA lr_structure TYPE (p_table).
  ASSIGN lr_structure->* TO FIELD-SYMBOL(<ls_structure>).
Nun möchte ich in meinem Programm die Struktur füllen und diese dann in die Tabelle schreiben.
Die Struktur kann ich auch ganz easy füllen, aber wenn ich diese dann folgendermaßen in die Tabelle schreiben will:

Code: Alles auswählen.

    APPEND <ls_structure> TO <lt_table>.
Dann erscheint folgender Fehler beim Syntax-Check:
"<LT_TABLE>" ist keine interne Tabelle.
Was mach ich hier falsch?
Vielen Dank,
Patrick

Re: Tabellenstruktur erzeugen aus Parameter-Wert

Beitrag von a-dead-trousers (Top Expert / 4399 / 223 / 1182 ) »
Du musst hier leider das Feldsymbol explizit definieren, weil aus dem Kontext heraus der Typ nicht ermittelt werden kann.

Code: Alles auswählen.

field-symbols: <lt_table> type standard table.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Seite 1 von 1

Vergleichbare Themen

1
Antw.
1747
Views
Der Parameter NODE enthält einen ungültigen Wert
von Dyrdek » 10.08.2014 14:50 • Verfasst in Web-Dynpro, BSP + BHTML
2
Antw.
1391
Views
Tabellenstruktur
von Ines » 12.10.2006 22:51 • Verfasst in ABAP® für Anfänger
1
Antw.
1827
Views
Tabellenstruktur ändern
von dan » 11.03.2009 16:31 • Verfasst in ABAP® für Anfänger
3
Antw.
2172
Views
Tabellenstruktur geändert...
von SAPAlex » 25.04.2008 20:18 • Verfasst in ABAP® für Anfänger
2
Antw.
1711
Views
Dynamische Tabellenstruktur erstellen
von skill » 13.06.2007 10:19 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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

Aktuelle Forenbeiträge

Daten an Tabelle binden
vor einer Stunde von Bright4.5 3 / 1471
Regex in where
vor 3 Stunden von tar 6 / 128
Programm anlegen mit Vorlage
vor 18 Stunden von DeathAndPain 2 / 121
IT0024 Qualifikationen CP-ID
vor 18 Stunden von DeathAndPain 2 / 353

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

Daten an Tabelle binden
vor einer Stunde von Bright4.5 3 / 1471
Regex in where
vor 3 Stunden von tar 6 / 128
Programm anlegen mit Vorlage
vor 18 Stunden von DeathAndPain 2 / 121
IT0024 Qualifikationen CP-ID
vor 18 Stunden von DeathAndPain 2 / 353

Unbeantwortete Forenbeiträge

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