generisches erstellen von internen Tabellen

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

Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).
3 Beiträge • Seite 1 von 1
3 Beiträge Seite 1 von 1

generisches erstellen von internen Tabellen

Beitrag von Domi ( / / 0 / 3 ) »
Hallo,
ist es möglich in einer Methode eine interne Tabelle aus z.B. aus zwei DDIC-Strukturen dynamisch zu erstellen?Die Namen der DDIC-Strukturen werden per Parameter übergeben.
Danke im voraus!

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


Beitrag von Hermann ( / / 0 / 3 ) »
Das geht zwar schon, aber nur über einen generierten type-pool.

Siehe dazu das Beispiel, daß ich in diesem Thread gepostet habe:

http://www.abapforum.com/forum/viewtopic.php?t=260

In dem Beispiel kannst Du sehen, wie man prinzipiell Coding generieren kann über (GENERATE SUBROUTINE POOL). Damit wäre es möglich, sich eine interne Tabelle zur Laufzeit zu erzeugen, die aus zwei (zur Laufzeit bekannten) Strukturen besteht.

Hermann

Beitrag von popeiko (ForumUser / 47 / 0 / 1 ) »
Das lässt sich auch über einen Methodenaufruf bewerkstelligen:

Code: Alles auswählen.

DATA:
  gt_fieldcatalog TYPE lvc_t_fcat,
  gz_table        TYPE REF TO data,
  gz_wa           TYPE REF TO data,
  g_struc_name    TYPE dd02l-tabname VALUE 'RFCDES'.

FIELD-SYMBOLS:
  <gt_table>      TYPE ANY TABLE,
  <gs_wa>         TYPE ANY.


* Feldkatalog aus Struktur bauen
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
     EXPORTING
          i_structure_name       = g_struc_name
     CHANGING
          ct_fieldcat            = gt_fieldcatalog
     EXCEPTIONS
          inconsistent_interface = 1
          program_error          = 2
          OTHERS                 = 3.

IF sy-subrc <> 0.
* ...
ENDIF.


* Zeiger auf dynamisch generierte Tabelle ermitteln
CALL METHOD cl_alv_table_create=>create_dynamic_table
  EXPORTING
    it_fieldcatalog           = gt_fieldcatalog
  IMPORTING
    ep_table                  = gz_table
  EXCEPTIONS
    generate_subpool_dir_full = 1
    OTHERS                    = 2.

IF sy-subrc = 0.
* ...
ENDIF.

* Tabelle einem Feldsymbol zuweisen
ASSIGN gz_table->* TO <gt_table>.

* Arbeitsbereich dynamisch erzeugen
CREATE DATA gz_wa LIKE LINE OF <gt_table>.
ASSIGN gz_wa->* TO <gs_wa>.
Im Hintergrund erfolgt auch hier ein GENERATE SUBROUTINE POOL. Die Zukunft der dynamischen Programmgenerierung ist jedoch laut SAP-Hilfe ungewiss. Daher sollte man wohl, wenn möglich, lieber auf Standardbausteine und -klassen zurückgreifen.

Seite 1 von 1

Vergleichbare Themen

5
Antw.
3891
Views
Vergleich von internen Tabellen
von Artie200 » 01.02.2011 16:42 • Verfasst in ABAP® für Anfänger
5
Antw.
2875
Views
feldkatalog von internen tabellen?
von ismailer » 18.01.2005 13:50 • Verfasst in ABAP® Core
3
Antw.
3989
Views
feldkatalog von internen tabellen?
von ismailer » 17.01.2005 11:47 • Verfasst in ABAP Objects®
3
Antw.
274
Views
Selektieren von Internen Tabellen
von Micha_ela » 29.09.2022 10:27 • Verfasst in ABAP® für Anfänger
3
Antw.
2205
Views
Inhaltübergabe bei internen Tabellen
von castadiva » 22.10.2007 12:47 • 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 10 Stunden von Bright4.5 3 / 1485
Regex in where
vor 12 Stunden von tar 6 / 157

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 10 Stunden von Bright4.5 3 / 1485
Regex in where
vor 12 Stunden von tar 6 / 157

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 5 Wochen von ralf.wenzel 1 / 3261
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9821