域与数据元素 (★★★★)

域与数据元素 (★★★★)

#abap #abap-dictionary #abap-data-types

概览表

Object (对象) Role (角色) Contains (包含)
Domain (域) 技术属性 数据类型、长度、小数位、值域、转换例程
Data Element (数据元素) 语义属性 字段标签、F1 文档、搜索帮助、SET/GET 参数

Domain(域)

域用于集中管理数据对象的技术属性。域不能在程序/表中直接使用,必须通过数据元素。

技术属性

Attribute (属性) Description (描述)
Format 数据类型 + 字符数 + 小数位
Output Properties 输出长度、+/- 符号、小写允许
Value Range 固定值或区间(用于输入检查)
Conversion Routine 显示格式 ↔ SAP 内部格式转换

常用内置数据类型

Type Description 限制
CHAR 字符串 表中 ≤255,结构中无限制
DATS 日期 固定 8 字符
DEC 金额/计算字段 ≤31 字符
NUMC 数字字符串 ≤255 字符
CURR 货币 需引用表中的 CUKY 字段
QUAN 数量 需引用表中的 UNIT 字段
LCHR 长字符串 必须是表的最后一个字段
⚠️LCHR 限制
含 LCHR/LRAW 字段的表不能使用 Append 结构,因为长字段必须在字段列表的最后位置。

转换例程 (Conversion Routine)

1
2
显示格式 ──CONVERSION_EXIT_XXXXX_OUTPUT──→ SAP 内部格式
SAP 内部格式 ──CONVERSION_EXIT_XXXXX_INPUT──→ 显示格式
  • 例:前导零补齐(1230000000123
  • 也影响 WRITE 语句的输出

Data Element(数据元素)

数据元素是域与数据对象之间的桥梁,包含语义信息。

字段标签 (Field Labels)

Label Type (标签类型) Length (长度) Usage (用途)
Short 最短 紧凑布局
Medium 中等 一般使用
Long 最长 PARAMETERS 的选择屏幕
Heading 列标题 ALV 列标题
💡多语言
字段标签可通过 Goto → Translation 或事务 SE63 翻译。其他语言可能需要更多字符。

数据元素的附加属性

Property (属性) Description (描述)
Search Help 可附加 F4 搜索帮助
SET/GET Parameter 跨屏幕自动传递值(按会话保持,注销后清除)
Default Component Name BAPI 结构中使用(英文统一命名)
Reference Type 可定义为引用类型(REF TO data / ANY / OBJECT)

技术类型来源

数据元素的技术属性有两种来源:

  1. 引用域(推荐)— 使用预定义的域
  2. 内置类型 — 直接指定数据类型和长度(不经过域)
1
2
推荐: Domain → Data Element → 使用
备用: Built-in Type → Data Element → 使用

Type Group(类型组)

  • 旧技术(Release 4.5a 之前),用于定义全局常量
  • 名称最多 5 个字符
  • 所有名称必须以 typegroup_ 为前缀
  • 使用: TYPE-POOLS zmytp.
📌现代替代
新开发应使用 Dictionary 结构代替类型组。全局常量可用类的常量属性。

考试/测试模式

Scenario/Keyword (场景/关键词) Answer (答案)
“程序能直接引用域吗?” 不能,必须通过数据元素
“CHAR 在表中的最大长度?” 255(超过用 LCHR)
“SET/GET 参数何时失效?” 用户注销后(仅按会话保持)
“类型组名称长度限制?” 最多 5 字符