假如咱们有两个 ABAP 内表,每个内表别离蕴含 a, b 和 a’, b’ 字段。
咱们心愿把内表 1 的 a 和 b 字段,别离赋给内表 2 的 a’ 和 b’ 字段。因为字段名称不雷同,所以无奈应用 MOVE-CORRESPONDING.
传统的做法,是写一个 LOOP,在循环体内,手动把表 1 每一行的字段 a,赋给表 2 每一行的字段 a ’:
其实有一种更简略高效的办法。
应用 cl_abap_corresponding,创立一个映射表,这个映射表,指定如下规定:
- 将内表的字段值 focus_language,赋给另一个内表的 focus_area 字段。
- 将内表的字段值 salary,赋给另一个内表的 salary_plus_bonous.
create 办法传入这个映射表,返回一个执行器。调用该执行器的 execute 办法,指定须要进行字段赋值的源内表和指标内表,赋值操作就主动实现了,无需开发人员手动应用 LOOP 赋值。
Execute 办法是在 ABAP 内核中实现的,比在 ABAP 利用中应用 LOOP 要高效。
对于该类的更多细节,请参考我的文章:介绍一种在 ABAP 内核态进行内表高效拷贝的办法,和对应的 Java 和 JavaScript 版本的伪实现 )
更多 Jerry 的原创文章,尽在:” 汪子熙 ”: