zl程序教程

您现在的位置是:首页 >  其他

当前栏目

SAP ABAP实用技巧介绍系列之利用RTTC给DDIC structure动态添加新的field

SAP 介绍 系列 利用 添加 动态 ABAP 实用技巧
2023-09-14 09:02:51 时间

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的变量:
image
image