Created by Jerry Wang, last modified on Dec 29, 2014
例如需要给DDIC structure COMM_PRODUCT在runtime时添加新的field ‘FIELD3’, 类型为int.
Source code:
DATA: gs_c_new TYPE comm_product.
DATA: gr_structdescr TYPE REF TO cl_abap_structdescr,
gr_elemdescr TYPE REF TO cl_abap_elemdescr.
DATA gt_components TYPE cl_abap_structdescr=>component_table WITH HEADER LINE.
DATA: gr_new_str TYPE REF TO data.
FIELD-SYMBOLS <new_str> TYPE ANY.
gr_structdescr ?= cl_abap_typedescr=>describe_by_data( gs_c_new ).
gt_components[] = gr_structdescr->get_components( ).
"add new field3 of type I
gr_elemdescr = cl_abap_elemdescr=>get_i( ).
gt_components-name = 'FIELD3'.
gt_components-type = gr_elemdescr.
APPEND gt_components.
gr_structdescr = cl_abap_structdescr=>create( gt_components[] ).
CREATE DATA gr_new_str TYPE HANDLE gr_structdescr.
ASSIGN gr_new_str->* TO <new_str>.
动态创建的具有FIELD3 attribute的变量: