且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

介绍一个使用 cl_abap_corresponding 进行两个内表不同名称字段赋值的快捷方法

更新时间:2021-12-30 04:25:49

假设我们有两个 ABAP 内表,每个内表分别包含 a, b 和 a’, b’ 字段。


我们希望把内表1 的 a 和 b 字段,分别赋给内表2 的 a’ 和 b’ 字段。因为字段名称不相同,所以无法使用 MOVE-CORRESPONDING.


介绍一个使用 cl_abap_corresponding 进行两个内表不同名称字段赋值的快捷方法


传统的做法,是写一个 LOOP,在循环体内,手动把表1每一行的字段a,赋给表2每一行的字段a’:



介绍一个使用 cl_abap_corresponding 进行两个内表不同名称字段赋值的快捷方法

其实有一种更简单高效的方法。


使用 cl_abap_corresponding,创建一个映射表,这个映射表,指定如下规则:


将内表的字段值 focus_language ,赋给另一个内表的 focus_area 字段。

将内表的字段值 salary,赋给另一个内表的 salary_plus_bonous.

介绍一个使用 cl_abap_corresponding 进行两个内表不同名称字段赋值的快捷方法


create 方法传入这个映射表,返回一个执行器。调用该执行器的 execute 方法,指定需要进行字段赋值的源内表和目标内表,赋值操作就自动完成了,无需开发人员手动使用 LOOP 赋值。


Execute 方法是在 ABAP 内核中完成的,比在 ABAP 应用中使用 LOOP 要高效。介绍一个使用 cl_abap_corresponding 进行两个内表不同名称字段赋值的快捷方法


介绍一个使用 cl_abap_corresponding 进行两个内表不同名称字段赋值的快捷方法介绍一个使用 cl_abap_corresponding 进行两个内表不同名称字段赋值的快捷方法