MOVECORRESPONDING 内表

作者:ABAP老白 约 2 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:ABAP, 开发

[ ABAP老白 ](javascript:void\(0\);)

在低版本的ECC上, MOVE-CORRESPONDING 只能支持结构,不支持内表间的赋值。可以写一个简单的函数实现这个功能。

MOVECORRESPONDING 内表 - 封面图
MOVECORRESPONDING 内表 - 封面图
MOVECORRESPONDING 内表 - 封面图
MOVECORRESPONDING 内表 - 封面图
MOVECORRESPONDING 内表 - 封面图
MOVECORRESPONDING 内表 - 封面图

FIELD-SYMBOLS : <fs_in> ,

<fs_out> .

IF clr_befor_add = 'X' .

CLEAR outtab[] .

ENDIF .

ASSIGN outtab TO <fs_out> .

LOOP AT intab ASSIGNING <fs_in> WHERE ( wherestr ).

MOVE-CORRESPONDING <fs_in> TO <fs_out> .

APPEND <fs_out> TO outtab . ENDLOOP .

解读:

1、在函数模块的TABLES里面定义的内表,如果不是RFC函数,可以不需要写结构

2、不管实参是否有表头,在TABLES里面定义的内表都是带表头的

测试程序:

REPORT z_barry_test NO STANDARD PAGE HEADING .

DATA : BEGIN OF it_in OCCURS 0 ,

matnr TYPE matnr ,

maktx TYPE maktx ,

END OF it_in .

DATA : BEGIN OF it_out OCCURS 0 ,

maktx TYPE maktx ,

END OF it_out .
SELECT matnr maktx INTO TABLE it_in

FROM makt UP TO 10 ROWS .

CALL FUNCTION 'ZMOVE_CORRESPONDING_TABLE'

TABLES

intab = it_in

outtab = it_out .

LOOP AT it_out .

WRITE / it_out .

ENDLOOP .
MOVECORRESPONDING 内表 - 封面图
MOVECORRESPONDING 内表 - 封面图
ABAP老白

关于作者:ABAP老白

企业信息化与 SAP 技术顾问,长期专注 SAP ABAP、FI/CO、MM、SD 等模块的技术分享与实战经验总结。查看更多介绍

来源说明:本文内容由「MOVECORRESPONDING内表.md」整理生成,仅用于内部技术分享与学习交流。