复制内部表定义并添加其他字段

2020-08-24 20:36发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 最简单的方法是基于现有内...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

最简单的方法是基于现有内部表动态定义内部表,但向第二个表添加其他字段。 这是动态完成的,而不是通过DATA语句。

类型:t_ds的开头,
ds类型DDOBJNAME,
结构类型DDOBJNAME,
类型(01)类型c,
数据类型DDOBJNAME,
febko类型febko," DEEP STRUCTURE
febep类型febep,"深度结构
febre类型t_febre,
t_ds的结尾。

类型:
t_ds的t_ds_tab类型表。

我想动态定义与t_ds完全一样的内部表,但带有一个附加字段(深):
bsid类型bsid。

谢谢,
弗雷德

4条回答
灬番茄
2020-08-24 21:36 .采纳回答

RTTS可以做到这一点。

示例代码(不干净且未处理的异常!)

数据:lo_structdescr_in类型参考cl_abap_structdescr,
       lo_structdescr_out类型参考cl_abap_structdescr,
       lo_datadescr类型参考cl_abap_datadescr,
       lt_components TYPE cl_abap_structdescr => component_table,
       lref_tab TYPE REF TO数据。

 类型:开始于lty_test_s,
          t100 TYPE t100,"结构
          test_field1 TYPE字符串,
        结束于lty_test_s。

 * -------------------------------------------------  ------------------- *

 "获取原始组件
 lo_structdescr_in?= cl_abap_structdescr => describe_by_name('LTY_TEST_S')。
 lt_components = lo_structdescr_in-> get_components()。

 "更新组件
 lo_datadescr?= cl_abap_elemdescr => describe_by_name('BSID')。
 附加值cl_abap_structdescr => component(name ='BSID'
                                              类型= lo_datadescr)至lt_components。

 "创建新的动态结构和新表
 lo_structdescr_out?= cl_abap_structdescr => create(p_components = lt_components)。
 DATA(lo_tabdesc)= cl_abap_tabledescr => create(lo_structdescr_out)。
 创建数据lref_tab类型句柄lo_tabdesc。
 ASSIGN lref_tab-> *到FIELD-SYMBOL()。

一周热门 更多>