Skip to content

ABAP 数据字典数据类型详解

一、数据类型分类

ABAP 数据字典中的数据类型可分为以下四类:

1. 数据元素(Data Element)

  • 定义‌:描述字段的最小逻辑单元,包含技术属性(数据类型、长度)和语义属性(字段标签、帮助文档)‌:ml-citation
  • 特点‌:
    • 必须基于域(Domain)或直接引用预定义类型(如 CHAR、NUMC)
    • 支持字段级语义描述(如字段标签、搜索帮助)‌:ml-citation
  • 示例‌:ZEMP_NAME 可定义为字符型,长度 20,用于存储员工姓名

2. 结构(Structure)

  • 定义‌:由多个字段组合而成的复合数据类型‌:ml-citation
  • 特点‌:
    • 不存储实际数据,仅作为逻辑结构存在
    • 可嵌套其他结构或表类型‌
  • 示例‌:ZADDRESS 结构可包含 STREETCITYPOSTCODE 等字段

3. 表类型(Table Type)

  • 定义‌:定义内表(Internal Table)结构的模板‌:ml-citation
  • 配置要素‌:
    • 行类型(Line Type):引用数据元素或结构
    • 访问模式(Access Mode):如排序表、哈希表
    • 主键定义‌
  • 示例‌:ZEMP_TAB 可定义为基于 ZEMP_STRUCT 结构的排序表

4. 域(Domain)

  • 定义‌:技术属性的基础定义单元,用于规范字段取值范围‌:ml-citation
  • 功能‌:
    • 设置数据类型(如 CHAR、DEC、CURR)
    • 定义值范围(固定值/区间)
    • 指定转换规则(如货币单位关联)‌
  • 示例‌:ZD_AMOUNT 可定义为 DEC(15,2) 类型,关联货币字段 WAERS

二、使用场景及示例

1. 字段标准化

abap
" 创建域
DOMAIN ZD_GENDER.
  DATATYPE: CHAR(1),
  VALUE RANGE: 'M'/'F'

" 创建数据元素
DATA ELEMENT ZE_GENDER.
  DOMAIN: ZD_GENDER,
  LABEL: '性别'‌:ml-citation{ref="5,7" data="citationList"}

2. 复杂结构定义

abap
" 创建地址结构
STRUCTURE ZADDRESS:
  STREET  TYPE ZE_STREET,
  CITY    TYPE ZE_CITY,
  COUNTRY TYPE LAND1‌:ml-citation{ref="1,5" data="citationList"}

3. 内表模板

abap
" 定义表类型
TABLE TYPE ZEMP_TT
  LINE TYPE ZEMP_STRUCT
  ACCESS MODE SORTED
  UNIQUE KEY empno‌:ml-citation{ref="7,8" data="citationList"}

三、使用规范

1、命名约定‌:

  • 数据元素建议以 Z* 或 Y* 开头
  • 域建议采用 ZD_* 前缀‌6

2. ‌关联性要求‌:

  • 货币字段(CURR)必须关联货币单位字段
  • 数量字段(QUAN)必须关联单位字段‌68

3.‌ 复用原则‌:

  • 相同业务含义的字段应引用同一数据元素
  • 跨模块使用的域需定义全局值范围‌

四、事务代码速查

操作类型事务代码说明
数据元素创建SE11需关联域或直接定义基本类型,遵循命名规则(如ZE_MM_ZJSRY)
结构维护SE11支持字段嵌套定义,通过组合多个数据元素/结构实现层次化数据结构
表类型配置SE11需指定行类型(结构/表类型)和主键,需激活并设置技术属性(如APPL0)
域管理SE11设置数据类型(CHAR/INT等)、长度、值范围及转换规则(如大小写敏感)