Code: Alles auswählen.
Struktur zvolumenstruc
Feld kunnr
ich erstelle ein programm und möchte weitere struktur erzeugen während der Laufzeit des Programms.
Struktur zvolumenstruc
Feld kunnr
Feld vbeln --> einfügen während der Laufzeit
nach Beenden des Programm, gehe ich in se11, der struktur sollte unverändert erscheinen
Struktur zvolumenstruc
Feld kunnr
Du willst aber nicht zur Laufzeit, dein neues Feld in der se11 sehen?kostonstyle hat geschrieben:weiteres feld einzufügen oder erweitern?
Code: Alles auswählen.
TYPE-POOLS: abap.
* Um das anlegen der Strucktur auf der DB zu umgehen
TYPES: BEGIN OF zvolumenstruc,
kunnr TYPE kunnr,
END OF zvolumenstruc.
DATA: ls_struct TYPE zvolumenstruc. "Strucktur aus der DB
DATA: ls_component TYPE abap_componentdescr, "Zeile der Strukturbeschreibung
lt_component TYPE abap_component_tab, "Tabelle der Strukturbeschreibung
lr_strucdescr TYPE REF TO cl_abap_structdescr, "Referenz auf Datentyp der Struktur
lr_data_struct TYPE REF TO data. "Referenz auf die erzeugte Struktur
FIELD-SYMBOLS: <fs_comp> TYPE ANY, "Um auf eine Komponente zu zugreifen
<fs_struct> TYPE ANY. "Um auf die Struktur zu zugreifen
* Akuelle Strukturbeschreibung hohlen
lr_strucdescr ?= cl_abap_structdescr=>describe_by_data( ls_struct ).
* Liste der Komponenten besorgen
CALL METHOD lr_strucdescr->get_components
receiving
p_result = lt_component.
* Neue Komponenten hinzufügen
CLEAR ls_component.
ls_component-name = 'VBELN'.
ls_component-type ?= cl_abap_typedescr=>describe_by_name( 'VBAK-VBELN' ).
INSERT ls_component INTO TABLE lt_component.
* Neu Struckturbeschreibung erstellen
lr_strucdescr = cl_abap_structdescr=>create( lt_component ).
* Neue Struktur erzeugen
CREATE DATA lr_data_struct TYPE HANDLE lr_strucdescr.
* Um auf die Sturktur zugreifen zu können ein Fieldysmbol benützten
ASSIGN lr_data_struct->* TO <fs_struct>.
*Im Debbuger <fs_struct> betrachten
BREAK-POINT.