Code: Alles auswählen.
CLEAR ls_rec.
LOOP AT lt_rec INTO ls_rec.
CONCATENATE 'ls_rec-' field INTO fieldname. [color=#008000] hier hat field den Wert z.b. Matnr das als Parameter mitgegeben wird[/color]
ASSIGN (fieldname) TO <field>.
IF sy-subrc <> 0.
MESSAGE i888(sabapdocu) WITH 'Feldname' field 'nicht in Struktur T000 vorhanden'.
STOP.
ENDIF.
IF <field> EQ 'muss'.
ls_rec-light = '1'.
ELSEIF <field> EQ 'optional'.
ls_rec-light = '2'.
ELSE.
ls_rec-light = '3'.
ENDIF.
MODIFY lt_rec FROM ls_rec.
ENDLOOP.
Code: Alles auswählen.
do.
assign component sy-index of structure ls_rec to <field>.
if sy-subrc <> 0.
exit.
endif.
* Prüfung
enddo.
Code: Alles auswählen.
DATA: lr_table TYPE REF TO cl_abap_tabledescr,
lr_struct TYPE REF TO cl_abap_structdescr,
lt_component TYPE abap_compdescr_tab.
lr_table ?= cl_abap_typedescr=>describe_by_data( lt_rec ).
lr_struct ?= lr_table->get_table_line_type( ).
lt_component = lr_struct->get_components( ).
Code: Alles auswählen.
DATA: lr_table TYPE REF TO cl_abap_tabledescr,
lr_struct TYPE REF TO cl_abap_structdescr,
lt_component TYPE abap_compdescr_tab.
lr_table ?= cl_abap_typedescr=>describe_by_data( lt_rec ).
lr_struct ?= lr_table->get_table_line_type( ).
lt_component = lr_struct->get_components( ).
ups.. das muss ich glaub ich korrigieren. sryc oco hat geschrieben: Dann hab ich dein Beispiel Code-Schnippsel: bel. Daten mittels RTTI bestimmen versucht umzusetzen.
Leider kein Erfolg. Kommen sehr viele Fehlermeldungen, da Performs mit unterschiedlichen Formalparametern mehrmals aufgerufen werden usw.
Nach 2 Stunden umstellen habe ich es aufgegeben.