ABAP 新语法 BASE

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

It takes more than intelligence to act intelligently.

头脑 聪明不代表就能明智地行事。

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

1

程序效果

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

2

源码分享

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

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

*& 5\. BASE关键字 理解:避免重置

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

*& VALUE + BASE:基于结构or内表赋值(value)

*& CORRESPONDING + BASE :基于结构or内表映射(corresponding)

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

TYPES

BEGIN OF gty_student ,

name ( 10 ) TYPE c , "姓名

gender TYPE c , "性别

age TYPE i , "年龄

id ( 10 ) TYPE n , "学生ID

END OF gty_student ,

gty_t_student TYPE TABLE OF gty_student WITH EMPTY KEY .

DATA ( ls_base ) = VALUE gty_student ( name = 'Tom' gender = '男'

age = 20 ).

DATA ( ls_base01 ) = VALUE gty_student ( name = 'Tom_01' ).

"除name字段,其他字段被重置

DATA ( ls_base02 ) = VALUE gty_student ( BASE ls_base name = 'Tom_02'

id = '1000' ). "基于结构修改

DATA ( lt_base ) = VALUE gty_t_student ( ( ls_base01 ) ( ls_base02 )

).

DATA ( lt_base01 ) = VALUE gty_t_student ( ( name = 'Bob' gender =

'男' age = 22 ) ).

DATA ( lt_base02 ) = VALUE gty_t_student ( BASE lt_base

( name = 'Bob' gender = '男' age = 22 ) ). "保留内表进行APPEND

3

AI解释

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

仅供参考

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

** VALUE + BASE:基于结构或内表的赋值操作: ** 使用 ` DATA(ls_base) = VALUE gty_student( name = 'Tom' gender = '男' age = 20 ). ` 初始化结构体,然后通过 ` DATA(ls_base01) = VALUE gty_student( BASE ls_base name = 'Tom_01' ). ` ,基于已有的结构体进行赋值,只修改 ` name ` 字段,其他字段被重置。 使用 ` DATA(ls_base02) = VALUE gty_student( BASE ls_base

name = 'Tom_02' id = '1000' ). ` ,基于已有的结构体进行赋值,修改 ` name ` 和 ` id `

字段,其他字段保留原值。

**CORRESPONDING + BASE:基于结构或内表的映射操作:** 使用 ` DATA(lt_base01) = VALUE

gty_t_student( ( name = 'Bob' gender = '男' age = 22 ) ). ` 初始化内表,然后通过 `

DATA(lt_base02) = VALUE gty_t_student( BASE lt_base ( name = 'Bob' gender = '男' age = 22 ) ). ` ,基于已有的内表进行映射赋值,保留 ` lt_base ` 的原始值,并进行映射APPEND。

通过这些例子,你可以向新手解释 ` BASE `

关键字的作用,即在赋值或映射操作中,基于已有的结构或内表进行操作,避免重新创建结构或内表,提高效率并简化代码。

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

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

欢迎点赞、留言、分享

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

往期推荐

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

](https://mp.weixin.qq.com/s?__biz=Mzg3OTE2Njg0OQ==&mid=2247495390&idx=1&sn=55b0041df577df441aecbbe5891acfd6&chksm=cf0a3a30f87db326b5fde73627d116158d2ada96a929979de6705ab67a6fbfd0a686f11455b4&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

](https://mp.weixin.qq.com/s?__biz=Mzg3OTE2Njg0OQ==&mid=2247495438&idx=1&sn=09d533259a5ffb296befb7e244255fd2&chksm=cf0a3be0f87db2f67f6ba2b07ba64fc7d116a55012c914d5f96d49886373e3723499739d0dbd&scene=21#wechat_redirect)

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

点个 在看 你最好看

ABAP猿

关于作者:ABAP猿

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

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