文本表 (★★★)

文本表 (★★★)

#abap #abap-dictionary #abap-validation

概览表

Element (要素) Description (描述)
Purpose (目的) 存储多语言文本描述
Key Structure (键结构) 主表键 + Language (SPRAS)
Relationship (关系) 与主表 N:1(一条主表记录对应多条语言文本)
Auto Usage 自动用于 F4 帮助的文本显示

文本表结构

文本表是主表的附加描述表,按语言存储文本。

1
2
3
4
5
6
7
8
9
主表: ZDEPMENT##              文本表: ZDEPMENTT##
┌────────┬──────────┬───┐ ┌────────┬──────────┬──────┬──────┐
│ CLIENT │ CARRIER │DEP│ │ CLIENT │ CARRIER │ LANG │ TEXT │
│ (Key) │ (Key) │(K)│ │ (Key) │ (Key) │(Key) │ │
├────────┼──────────┼───┤ ├────────┼──────────┼──────┼──────┤
│ 100 │ AA │01 │ │ 100 │ AA │ E │Sales │
│ 100 │ AA │02 │ │ 100 │ AA │ D │Verk. │
└────────┴──────────┴───┘ │ 100 │ AA │ E │Mkt │
└────────┴──────────┴──────┴──────┘

文本表的必要条件

Condition (条件) Detail (详情)
键结构 主表键字段 + Language 字段
Language 字段 使用域 SPRAS
Language 外键 引用表 T002(语言表)
文本字段 第一个字符型非键字段
外键类型 Key fields of a text table

创建步骤

1
2
3
4
1. 创建文本表(结构与主表键 + LANG + TEXT)
2. 定义 DepCode → 主表的外键(从主表复制时已自动创建)
3. 定义 Language → T002 的外键
(因使用域 SPRAS,系统会自动提出 T002 作为检表)

文本表的自动使用

Context (上下文) Behavior (行为)
F4 帮助 自动显示当前登录语言的文本
SELECT text_table 的文本自动关联
维护视图 语言字段自动填入登录语言
💡文本表与 F4 帮助
当主表字段有检表(且该检表有文本表)时,F4 帮助自动显示:
  • 检表的键字段
  • 文本表中当前语言的文本

与主表的关系

1
2
3
4
ZDEPMENT## (主表)     1 ←──→ N     ZDEPMENTT## (文本表)

外键方向: 文本表 → 主表(文本表引用主表)
基数: 1:CN(一条主表记录可对应 0 或多条不同语言的文本记录)
⚠️文本表不是反方向
外键定义在文本表上(文本表引用主表),不是主表引用文本表。

考试/测试模式

Scenario/Keyword (场景/关键词) Answer (答案)
“文本表的键结构?” 主表键字段 + Language (SPRAS)
“Language 字段引用哪个检表?” T002(语言表)
“文本表与主表的基数?” 1:CN(一条主表 → 多条语言文本)
“F4 帮助如何使用文本表?” 自动显示当前登录语言的文本