我正在寻找一个语言结构或功能模块,将是移动-相应的忽略首字母I喜欢的。简单地说,我想要一些工作完全像移动-对应的源DEST,但忽略所有的字段是初始化在SOURSE。
有类似的东西吗?
我准备了我自己的一段代码,我想要分享。它不是完美的,它不能与复杂的结构一起工作。然而,我现在不需要比在平面结构上工作更多的东西。
创建私有类。公共部分。导入i_str_source类型any修改c_str_dest类型any。ENDCLASS。类lcl_utilities实现。move_corresponding_ignore_init方法。数据:l_rcl_abap_structdescr TYPE REF TO cl_abap_structdescr。L_rcl_abap_structdescr ?= cl_abap_typedescr=>describe_by_data(i_str_source)。在l_rcl_abap_structdescr->组件上循环指定字段符号()ASSIGN COMPONENT -name OF STRUCTURE c_str_dest TO FIELD-SYMBOL()。 IF sy-subrc = 0. ASSIGN COMPONENT -name OF STRUCTURE i_str_source TO FIELD-SYMBOL(). ASSERT sy-subrc = 0. IF IS NOT INITIAL. = . ENDIF. ENDIF. ENDLOOP. ENDMETHOD. "move_corresponding_ignore_init ENDCLASS.
...和一个小宏,以便使用它更不像一个语言结构。
定义move_corresponding_ignore_init。Lcl_utilities => move_responding_ignore_init(导出i_str_source = &1改变c_str_dest = &2)。END-OF-DEFINITION。