我正在寻找一个语言构造或功能模块,将是move -相应忽略INITIALS I喜欢的。简单地说,我想要一些工作完全像move -相对应的源DEST,但忽略源中的所有初始字段。
有这样的东西吗?
我已经准备好了我想要分享的代码。它不是完美的,它不能用于复杂的结构。然而,我现在不需要更多的东西,除了工作在平面结构。
CLASS lcl_utilities DEFINITION FINAL公共部分。类方法:move_correspondents _ignore_init导入i_str_source TYPE any改变c_str_dest TYPE 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=> descrip_by_data (i_str_source)。分配FIELD-SYMBOL()。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_cording_ignore_init(导出i_str_source = &1更改c_str_dest = &2)。END-OF-DEFINITION。