[ABAP] Structure구조를 가져와서 필드 추가
현재 생성되어있는 Structure 구조체를 가져와서 원하는 필드를 추가한다.
DATA:
lr_struc_descr TYPE REF TO cl_abap_structdescr,
lr_table_descr TYPE REF TO cl_abap_tabledescr.
DATA:
lt_abap_compdescr TYPE cl_abap_structdescr=>component_table,
ls_abap_compdescr LIKE LINE OF lt_abap_compdescr.
DATA:
lt_comp_table TYPE cl_abap_structdescr=>component_table,
ls_comp_table LIKE LINE OF lt_comp_table.
* Step1.현재 Return되는 구조체를 가져온다.
lr_struc_descr ?= cl_abap_typedescr=>describe_by_name( 'MDG_BS_MAT_S_ES_STA_RESP_ATTR' ).
lt_abap_compdescr[] = lr_struc_descr->get_components( ).
* Step2.원하는 필드를 추가한다.
ls_abap_compdescr-name = 'ZGRADE'.
ls_abap_compdescr-type = cl_abap_elemdescr=>get_c( 2 ).
APPEND ls_abap_compdescr TO lt_abap_compdescr.
* Step3.추가 반영된 구조 및 테이블을 생성한다.
lr_struc_descr = cl_abap_structdescr=>create( lt_abap_compdescr ).
lr_table_descr = cl_abap_tabledescr=>create( lr_struc_descr ).
* Step4.해당 테이블을 반영한다.
CREATE DATA cr_data_table_ref TYPE HANDLE lr_table_descr.