15.[SAP ABAP] ABAP中的TYPES(自定义类型)

15.[SAP ABAP] ABAP中的TYPES(自定义类型)

文章目录

  • [15.[SAP ABAP] ABAP中的TYPES(自定义类型)](#15.[SAP ABAP] ABAP中的TYPES(自定义类型))
    • [一. 基本语法](#一. 基本语法)
    • [二. 常见用法](#二. 常见用法)
      • [1. 定义基本类型别名](#1. 定义基本类型别名)
      • [2. 定义结构类型(Structure)](#2. 定义结构类型(Structure))
      • [3. 定义内表类型(Internal Table)](#3. 定义内表类型(Internal Table))
      • [4. 使用REF TO定义引用类型](#4. 使用REF TO定义引用类型)
      • [5. 泛型类型(常用于方法参数)](#5. 泛型类型(常用于方法参数))
    • [二. DATA与TYPES区别](#二. DATA与TYPES区别)

在 ABAP(Advanced Business Application Programming)中, TYPES 语句用于定义 本地数据类型 (local data types)。这些类型仅在当前程序(如报表、类、函数模块等)中有效,不会存储在 ABAP 字典(DDIC)中。

一. 基本语法

ABAP 复制代码
TYPES typename [TYPE type|LIKE dobj] [VALUE val] ...

或用于结构/内表

ABAP 复制代码
TYPES:BEGIN OF typename,
      my_para1 TYPE type1,
      my_para2 TYPE type2,
      END OF typename.

TYPES itab_type TYPE STANDARD TABLE OF line_type ...

二. 常见用法

1. 定义基本类型别名

ABAP 复制代码
TYPES: my_char TYPE c LENGTH 10,
       my_date TYPE d,
       my_amount TYPE p DECIMALS 2.

2. 定义结构类型(Structure)

ABAP 复制代码
TYPES: BEGIN OF ty_employee,
         emp_id   TYPE i,
         name     TYPE string,
         salary   TYPE p DECIMALS 2,
       END OF ty_employee.

3. 定义内表类型(Internal Table)

ABAP 复制代码
TYPES: tt_employee TYPE STANDARD TABLE OF ty_employee
                    WITH DEFAULT KEY.

TYPES: tt_sorted_emp TYPE SORTED TABLE OF ty_employee
                      WITH UNIQUE KEY emp_id.

TYPES: tt_hash_emp TYPE HASHED TABLE OF ty_employee
                    WITH UNIQUE KEY emp_id.

4. 使用REF TO定义引用类型

ABAP 复制代码
TYPES: ty_ref_employee TYPE REF TO ty_employee.

5. 泛型类型(常用于方法参数)

ABAP 复制代码
TYPES: ty_any_table TYPE STANDARD TABLE OF any_table.

注意:any_table是泛型,只能用于形式参数,不能用于实际变量声明。

二. DATA与TYPES区别

1. 核心区别

特性 TYPES DATA
作用 定义数据类型(type definition) 声明数据对象/变量(data object declaration)
是否分配内存 不分配内存 分配内存
是否可赋初值 ABAP 7.40 前不可;7.40+ 可用 VALUE,但仍是类型定义) 可用 VALUE 赋初值
生命周期 仅作为模板内存 在程序运行时实际存在
使用范围 用于后续 DATAPARAMETERS、方法参数等的类型参考 直接用于程序逻辑操作

2. 语法定义

TYPES:定义类型
ABAP 复制代码
TYPES: ty_name TYPE string,
       BEGIN OF ty_person,
         id   TYPE i,
         name TYPE ty_name,
       END OF ty_person.

DATA:创建变量

ABAP 复制代码
DATA: lv_name TYPE string VALUE 'GoYeer',
      ls_person TYPE ty_person.

总结口诀

TYPES 定义"是什么类型",DATA 创建"具体的东西

相关推荐
LilySesy1 天前
【SAP-MOM项目】二、接口对接(中)
开发语言·python·pandas·restful·sap·abap
Lisson 31 天前
VF01修改实际开票数量增强
java·服务器·前端·abap
Henry-SAP3 天前
SAP(ERP) 组织结构业务视角解析
大数据·人工智能·sap·erp·sap pp
爱喝水的鱼丶5 天前
SAP-ABAP:掌握BAPI_OUTB_DELIVERY_CONFIRM_DEC:解锁SAP自动化发货的核心钥匙
运维·学习·sap·abap·交流学习
SAP_奥维奥科技6 天前
详解SAP Business One:采购费用的处理方式
sap
爱喝水的鱼丶8 天前
SAP-ABAP:从SAP中暴露REST API:完整实操SICF接口开发指南
运维·开发语言·api·sap·abap·rest·接口开发
SAP_奥维奥科技9 天前
2026年中国SAP实施服务商市场格局与服务商能力评估
sap·sap管理系统·sap business one·sap管理系统软件·sap实施服务商
MTC麦汇信息12 天前
MTC亮相SAP新加坡GTMKOM,助力亚太企业全球化发展
sap·数字化转型·全球化
xiaohutushen12 天前
紧急预警:微软 Edge Webview2 v144 升级导致 SAP GUI 严重白屏故障 (Note 3704912)
前端·microsoft·edge·abap·sap 用户·sap license·usmm
山茶花开时。14 天前
[SAP FICO] FICO模块简介
sap·sap fico