单元 4:输入检查练习(10 道题) #practice #abap #abap-dictionary #abap-validation
相关概念
Keyword (关键词)
Answer (答案)
固定值定义位置
域的 Value Range 选项卡
固定值与 F4 帮助
自动成为 F4 候选值
基数第一个数字
始终为 1
基数 1:CN
一条检表记录对应 0 或多条外键记录
文本表键结构
主表键字段 + Language (SPRAS)
文本表语言引用
T002
问题 1 - 域固定值检查 [recall]
域的固定值(Fixed Values)定义在哪里?它如何影响使用该域的字段?
固定值定义在
域的 Value Range 选项卡 中。影响方式:
所有使用该域的数据元素 都会受到约束
固定值自动成为 F4 帮助 的候选值
修改域的固定值会影响所有引用该域的字段
固定值适用于少量且稳定 的值(如状态码 A/F/S)
问题 2 - 固定值 vs 检表 [recall]
什么时候应该使用域固定值,什么时候应该使用外键检表?
域固定值 :少量、稳定的值(如状态码 A=Admin, F=Flight, S=Service)
外键检表 :大量、可能增长的值(如客户列表、产品列表)
固定值定义在域上,检表通过外键关系定义
问题 3 - 外键定义 [recall]
什么是外键?它建立了哪两个表之间的关系?
外键建立外键表 (Foreign Key Table) 的字段与检表 (Check Table) 的字段之间的关联。外键确保引用完整性 ——用户只能输入检表中存在的值。创建外键时,系统会自动提出字段分配建议。
问题 4 - 基数 [recall]
解释基数 (Cardinality) 的含义。1:CN 表示什么?
基数描述
检表记录 与
外键表记录 的对应关系,格式为 N:M。
N(检表侧) :始终为 1
M(外键表侧) :
1 → 必须一一对应
C → 0 或 1 条(可选)
N → 多条(必须)
CN → 0 或多条(可选)
1:CN 表示:一条检表记录对应 0 或多条 外键记录。
问题 5 - 外键字段类型 [recall]
外键字段类型有哪些?分别表示什么?
类型
含义
Key fields / candidates
外键字段是检表的键字段(或候选键)
Non-key fields / candidates
外键字段是检表的非键字段
Key fields of a text table
文本表专用类型
No key fields / candidates
非键非候选
问题 6 - 文本表结构 [recall]
文本表的键结构必须满足什么条件?
文本表的键结构必须包含:
主表的所有键字段
Language 字段 (使用域 SPRAS )
Language 字段必须引用表 T002 (语言表),外键类型为 “Key fields of a text table”。文本字段是第一个字符型非键字段 。
问题 7 - 文本表自动使用 [recall]
文本表在什么场景下会被自动使用?
文本表在以下场景被自动使用:
F4 帮助 :自动显示当前登录语言 的文本
SELECT :text_table 的文本自动关联
维护视图 :语言字段自动填入登录语言
当主表字段有检表(且该检表有文本表)时,F4 帮助自动显示检表键字段 + 文本表中当前语言的文本
问题 8 - 自引用外键 [application]
员工表中有一个 MANAGER 字段,需要确保经理也是该表中的员工。如何实现这种检查?
使用
自引用外键 :将 MANAGER 字段定义为引用
同一张表 的外键:
1 ZEMPLOY##-MANAGER → ZEMPLOY##-EMP_NUM
表引用自身作为检表,确保经理编号必须是该表中已存在的员工编号。
问题 9 - 基数应用 [application]
一个航空公司表 (SCARR) 和一个航班表 (SFLIGHT) 之间的关系:每个航空公司可以有多个航班,但也可能有一个新成立的航空公司暂时没有航班记录。SCARR 作为 SFLIGHT 的检表时,基数应该设为什么?
基数应设为
1:CN :
1(检表 SCARR 侧) :每条航空公司记录(始终为 1)
CN(外键表 SFLIGHT 侧) :一个航空公司可以有 0 或多条 航班记录
C = 可选(可能没有航班),N = 多条(也可能有很多航班)
这符合 “新成立的航空公司可能还没有航班” 的场景
问题 10 - 输入检查层次分析 [analysis]
一个字段同时有域固定值检查和外键检查。哪个优先?如果检表的值与域固定值冲突,会发生什么?
输入检查按优先级执行:
域固定值 (优先级 1)
外键检查 (优先级 2)
程序内检查 (优先级 3)
域固定值先于外键检查执行。如果检表的值与域固定值冲突(即检表中存在不在域固定值列表中的值),那么这些值不会被接受 ——域固定值检查会首先拒绝它们。因此在设计时,应避免在同一字段上同时使用域固定值和外键检查,除非两者完全一致。通常选择其中一种机制即可。
Keyword (关键词)
Answer (答案)
固定值定义位置
域的 Value Range 选项卡
固定值自动效果
成为 F4 帮助候选值
固定值 vs 检表
少量稳定用固定值,大量可变用检表
外键作用
确保引用完整性
基数第一个数字
始终为 1
1:CN 含义
一条检表记录对应 0 或多条外键记录
文本表键结构
主表键 + Language (SPRAS)
语言引用检表
T002
自引用外键
表引用自身作为检表
输入检查优先级
域固定值 > 外键检查 > 程序检查