20.[SAP ABAP] DATA与TYPES异同

20.SAP ABAP DATA与TYPES异同

文章目录

在ABAP语言中,DATA和TYPES是两个关键字,用途完全不同的关键字,它们都用于声明,但作用对象和生命周期不同。以下列出它们的核心区别:

一、核心本质的区别

TYPES关键字:定义数据类型TYPE

本质: 创建一个自定义的数据类型模板,它只是一个规则/蓝图/模具,不占用内存空间,系统不会为它分配任何存储区域;

**作用: ** 定义是数据的格式,这个类型是字符型,还是数值型,具体长度是多少,几位小数位,是结构体还是内表,这里只做类型声明,没有具体的值。

DATA关键字:定义具体的数据对象(Data Object)

** 本质:** 创建一个具体的变量/常量,它是基于数据类型的实例化,会在内存中分配的存储空间,可以存储具体的数值/内容。

作用: 定义是可以赋值、可以运算、可以调用的具体变量,必须依赖数据类型(系统预定义类型/自定义类型)才能创建。

二、语法对比

使用TYPES定义类型

TYPES用来自定义类型,定义后该类型可以被反复复用。

语法格式:

  1. 定义基本自定定义类型

    ABAP 复制代码
    TYPES <自定义类型名> TYPE <参考类型> [DECIMAL <小数位>] [LENGTH <长度>].
  2. 定义结构体类型(最常用)

    ABAP 复制代码
    TYPES:BEGIN OF <自定义结构体类型名>,
            <字段1> TYPE <参考类型>,
            <字段2> TYPE <表类型>,
    END OF <自定义结构体类型名>.
  3. 定义内表类型

    ABAP 复制代码
    TYPES <自定义内表类型名> TYPE TABLE OF <行类型> WITH KEY <主键> WITH HEADER LINE.

参考类型可以是:系统预定义类型(I整数、N数字、C字符、P打包数、D日期、T时间等),标准表类型(MAPA/VBAP等透明表)、其他自定义TYPES类型。
*

使用DATA声明变量

DATA用来定义具体变量,必须绑定数据类型。

语法格式:

  1. 直接基于系统预定义类型定义变量(最基础,无自定义类型时用)

    ABAP 复制代码
    DATA <变量名> TYPE <系统类型/标准表> [VALUE <初始值>].
  2. 基于TYPES自定义的类型定义变量(核心用法,复用性强)

    ABAP 复制代码
    DATA <变量名> TYPE <自定义类型名> [VALUE <初始值>]
  3. 直接定义+赋值(简写)

    ABAP 复制代码
    DATA <变量名> VALUE '<具体值>'. "系统自动推导类型,比如 DATA lv_name VALUE 'GOYEER'

​ ** 核心特点:** DATA定义变量可以直接赋值、取值、参与运算,因为它有内存空间。

相关推荐
Harrison Ben12 小时前
(原创)SAP FI自动入账奥义:FBKP FBKA FBKF
运维·sap·sap fico·sap运维·sap 实施
xiao贱贱16 小时前
SAP ABAP OPEN SQL(应用实战大全)
sap·abap·opensql
爱喝水的鱼丶4 天前
SAP-ABAP:ECC→S/4HANA ABAP 迁移升级指南——程序改造、语法兼容与性能优化 导语
运维·开发语言·性能优化·sap·abap·经验交流·开发交流
snpgroupcn6 天前
SAP ECC → S/4HANA 迁移的工程化路径:范围建模、规则复用与短停机窗口切换
sap·sap实施商
yang982268 天前
S4 CLOUD
sap
爱喝水的鱼丶11 天前
SAP-ABAP:S/4 HANA ABAP 新特性入门:与 ECC ABAP 的核心差异、架构优势与学习路径规划
运维·数据库·性能优化·sap·abap·hana·开发交流
山茶花开时。15 天前
[SAP ABAP] SAP设置定时执行任务Job
sap·sap abap
SAP_LO15 天前
对检验批次做决策后物料状态并没有改变的处理方法
sap·aq11·bs02·检验批
SAP_奥维奥科技15 天前
云栖大会|奥维奥履约计划智能体获SAP行业AI共创优选方案
sap·云栖大会
duangww16 天前
QRFC的详细错误消息查看方式
abap·ewm·总分类帐科目xxx不一致