ABAP 新语法 CORRESPONDING

作者:ABAP猿 约 5 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:ABAP, Data Engineering, SD, 开发, 数据工程, 销售分销
ABAP 新语法 CORRESPONDING - 封面图
ABAP 新语法 CORRESPONDING - 封面图
ABAP 新语法 CORRESPONDING - 封面图
ABAP 新语法 CORRESPONDING - 封面图

Learn from the mis takes of others.

You can't live long enough to make them yourself.

试着从别人的错误当中学习,

因为你没办法用自己的生命实际感受过每一个错误。

ABAP 新语法 CORRESPONDING - 封面图
ABAP 新语法 CORRESPONDING - 封面图

1

程序效果

ABAP 新语法 CORRESPONDING - 封面图
ABAP 新语法 CORRESPONDING - 封面图

2

源码分享

ABAP 新语法 CORRESPONDING - 封面图
ABAP 新语法 CORRESPONDING - 封面图

*&\----------------------------------------------------------------------

*& 4\. CORRESPONDING关键字 理解:字段映射

*&\----------------------------------------------------------------------

*& 语法:… CORRESPONDING dtype|#( [BASE ( base )] struct|itab [mapping|except] )

*& 后缀:MAPPING 映射字段,注意避免dump;

*& EXCEPT 排除映射字段

*&\----------------------------------------------------------------------

TYPES

BEGIN OF gty_student ,

name ( 10 ) TYPE c , "姓名

gender TYPE c , "性别

age TYPE i , "年龄

id ( 10 ) TYPE n , "学生ID

class ( 10 ) TYPE c , "班级

score TYPE p DECIMALS 1 , "成绩

level ( 10 ) TYPE c , "级别

ispass TYPE c , "是否通过

END OF gty_student ,

gty_t_student TYPE TABLE OF gty_student WITH EMPTY KEY .

TYPES

BEGIN OF gty_teacher ,

name ( 10 ) TYPE c , "姓名

gender TYPE c , "性别

age TYPE i , "年龄

seniority TYPE i , "工龄

office ( 12 ) TYPE c , "办公室

END OF gty_teacher ,

gty_t_teacher TYPE TABLE OF gty_teacher WITH EMPTY KEY .

"初始结构数据

DATA ( ls_corr01 ) = VALUE gty_teacher ( name = 'Tom' gender = '男'

age = 20 office = '101办公室' seniority = 10 ).

DATA ( ls_corr02 ) = VALUE gty_student ( name = 'Lisa' gender =

'女' age = 18 ).

"基础

DATA ( ls_teacher01 ) = ls_corr01 . DATA ( ls_teacher02 ) = ls_corr01 . ls_teacher01 = CORRESPONDING gty_teacher ( ls_corr02 ).

"无BASE,无映射字段,置初始值

ls_teacher02 = CORRESPONDING gty_teacher ( BASE ( ls_corr01 )

ls_corr02 ). "无映射字段,保留原值(同MOVE-CORRESPONDING ... to ...)

"后缀

DATA ( ls_teacher03 ) = CORRESPONDING gty_teacher ( ls_corr02 MAPPING

seniority = age EXCEPT age ).

DATA ( ls_teacher04 ) = CORRESPONDING gty_teacher ( BASE ( ls_corr01 ) ls_corr02 MAPPING seniority = age EXCEPT age ).

*------------------------------------*

"初始化内表数据

DATA ( lt_corr01 ) = VALUE gty_t_teacher ( ( name = 'Tom' gender =

'男' age = 20 office = '101办公室' seniority = 10 )

( name = 'Tom2' gender = '男' age = 21 office = '102办公室' seniority

= 11 )

( name = 'Tom3' gender = '男' age = 22 office = '103办公室' seniority

= 12 ) ).

DATA ( lt_corr02 ) = VALUE gty_t_student ( ( name = 'Lisa' gender =

'女' age = 18 )

( name = 'Lisa2' gender = '女' age = 19 ) ).

"基础

DATA ( lt_teacher01 ) = lt_corr01 . DATA ( lt_teacher02 ) = lt_corr01 . lt_teacher01 = CORRESPONDING gty_t_teacher ( lt_corr02 ).

"无BASE,清空原表数据,映射赋值

lt_teacher02 = CORRESPONDING gty_t_teacher ( BASE ( lt_corr01 )

lt_corr02 ). "有BASE,保留内表数据,映射APPEND

"后缀

DATA ( lt_teacher03 ) = CORRESPONDING gty_t_teacher ( lt_corr02 MAPPING

seniority = age EXCEPT age ).

DATA ( lt_teacher04 ) = CORRESPONDING gty_t_teacher ( BASE ( lt_corr01 ) lt_corr02 MAPPING seniority = age EXCEPT age ).

3

AI解释

ABAP 新语法 CORRESPONDING - 封面图
ABAP 新语法 CORRESPONDING - 封面图

仅供参考

这段ABAP代码主要介绍了ABAP中新引入的 ` CORRESPONDING ` 关键字的用法,其中核心点如下:

** 结构体之间的字段映射: ** 使用 ` ls_teacher01 = CORRESPONDING gty_teacher( ls_corr02

). ` ,通过 ` CORRESPONDING ` 将结构体 ` gty_student ` 的字段映射到结构体 ` gty_teacher

` ,实现两者之间相同字段的赋值。

**结构体之间的字段映射,保留原值:** 使用 ` ls_teacher02 = CORRESPONDING gty_teacher( BASE (

ls_corr01 ) ls_corr02 ). ` ,通过 ` CORRESPONDING ` 将结构体 ` gty_student `

的字段映射到结构体 ` gty_teacher ` ,保留 ` ls_corr01 ` 的原始值。

**字段映射中的MAPPING和EXCEPT后缀:** 使用 ` ls_teacher03 = CORRESPONDING gty_teacher( ls_corr02 MAPPING seniority = age EXCEPT age ). ` ,通过 ` MAPPING ` 指定映射关系,

` EXCEPT ` 排除不需要映射的字段。

**内表之间的字段映射:** 使用 ` lt_teacher01 = CORRESPONDING gty_t_teacher( lt_corr02 ).

` ,通过 ` CORRESPONDING ` 将内表 ` gty_t_student ` 的字段映射到内表 ` gty_t_teacher `

,清空原表数据,并映射赋值。

**内表之间的字段映射,保留原值:** 使用 ` lt_teacher02 = CORRESPONDING gty_t_teacher( BASE (

lt_corr01 ) lt_corr02 ). ` ,通过 ` CORRESPONDING ` 将内表 ` gty_t_student `

的字段映射到内表 ` gty_t_teacher ` ,保留 ` lt_corr01 ` 的原始值,并进行映射APPEND。

**内表字段映射中的MAPPING和EXCEPT后缀:** 使用 ` lt_teacher03 = CORRESPONDING gty_t_teacher( lt_corr02 MAPPING seniority = age EXCEPT age ). ` ,通过 `

MAPPING ` 指定映射关系, ` EXCEPT ` 排除不需要映射的字段。

通过这些例子,你可以向新手解释如何使用 ` CORRESPONDING `

关键字进行结构体和内表之间字段的映射,以及如何使用后缀进行更加灵活的映射操作。

ABAP 新语法 CORRESPONDING - 封面图
ABAP 新语法 CORRESPONDING - 封面图

以上是今日分享,希望对你有所帮助~~~

欢迎点赞、留言、分享

ABAP 新语法 CORRESPONDING - 封面图
ABAP 新语法 CORRESPONDING - 封面图
ABAP 新语法 CORRESPONDING - 封面图
ABAP 新语法 CORRESPONDING - 封面图
ABAP 新语法 CORRESPONDING - 封面图
ABAP 新语法 CORRESPONDING - 封面图
ABAP 新语法 CORRESPONDING - 封面图
ABAP 新语法 CORRESPONDING - 封面图

往期推荐

[ ABAP 新语法-构建演示数据

](https://mp.weixin.qq.com/s?__biz=Mzg3OTE2Njg0OQ==&mid=2247495390&idx=1&sn=55b0041df577df441aecbbe5891acfd6&chksm=cf0a3a30f87db326b5fde73627d116158d2ada96a929979de6705ab67a6fbfd0a686f11455b4&scene=21#wechat_redirect)

[ ABAP 新语法-ITAB[ idx ]、ITAB[ key ]

](https://mp.weixin.qq.com/s?__biz=Mzg3OTE2Njg0OQ==&mid=2247495421&idx=1&sn=5bf5211e0efd337c99f468b404a74241&chksm=cf0a3a13f87db30581864047c526686107ab52627f151d2a7b351ffc4042ccf0c663e2bc90c6&scene=21#wechat_redirect)

[ ABAP 新语法-VALUE

](https://mp.weixin.qq.com/s?__biz=Mzg3OTE2Njg0OQ==&mid=2247495430&idx=1&sn=49d1f2dcb5cdeb6244ac6c8d5bcf065f&chksm=cf0a3be8f87db2feb7ed67e350579b4d62c1466feee276b3bbc79f89a31e59e1c7a493fa8975&scene=21#wechat_redirect)

ABAP 新语法 CORRESPONDING - 封面图
ABAP 新语法 CORRESPONDING - 封面图
ABAP 新语法 CORRESPONDING - 封面图
ABAP 新语法 CORRESPONDING - 封面图

点个 在看 你最好看

ABAP猿

关于作者:ABAP猿

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

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