单元 8:搜索帮助练习(10 道题)
单元 8:搜索帮助练习(10 道题)
#practice #abap #abap-dictionary #abap-search-help
相关概念
📌关键模式(点击展开)
| Keyword (关键词) | Answer (答案) |
|---|---|
| 搜索帮助接口 | IMPORT(传入上下文)/ EXPORT(返回选定值) |
| 选择方法优先 | 数据库视图(外连接必要时用帮助视图) |
| 维护视图作选择方法 | 不能 |
| 搜索字段传值条件 | 仅包含通配符 * 或 + 时 |
| 集合搜索帮助显示 | 多个 Tab 页 |
| 最高优先级 F4 | POV 事件/屏幕字段直接挂接 |
| Exit 模板 | F4IF_SHLP_EXIT_EXAMPLE |
问题 1 - 搜索帮助接口参数 [recall]
搜索帮助的 IMPORT 和 EXPORT 参数分别有什么作用?
📌显示答案
- IMPORT 参数:从屏幕字段 → 搜索帮助,传入上下文(如用户已输入的部分值)
- EXPORT 参数:搜索帮助 → 屏幕字段,返回选定值(如用户选择的代码和名称)
- 两个对话框(限制值对话框和命中列表对话框)可使用不同的参数和顺序
问题 2 - 选择方法 [recall]
搜索帮助的选择方法 (Selection Method) 可以使用哪些对象?有什么限制?
📌显示答案
| 选择方法 | 适用场景 |
|---|---|
| Table(表) | 数据在一个表或其文本表中 |
| Database View(数据库视图) | 数据分布在多个表,使用 Inner Join |
| Help View(帮助视图) | 需要 Outer Join 时使用 |
限制:维护视图不能作为选择方法。优先使用数据库视图,仅在外连接必要时用帮助视图。
问题 3 - 对话类型 [recall]
搜索帮助有哪三种对话类型 (Dialog Type)?分别说明行为。
📌显示答案
| 类型 | 行为 |
|---|---|
| Dialog with value restriction | 先显示限制值对话框,用户输入条件后再显示命中列表 |
| Dialog depending on hit list | 少量结果直接显示命中列表;多结果先显示限制值对话框 |
| No dialog | 直接显示命中列表,不显示限制值对话框 |
问题 4 - 搜索字段特殊行为 [recall]
搜索字段 (Search Field) 的值在什么条件下才会传递给 IMPORT 参数?
📌显示答案
* 或 +)时才传递给 IMPORT 参数。如果用户输入的是精确值(不含通配符),则不会传递。这个设计是为了避免不必要的过滤。问题 5 - 挂接方式 [recall]
搜索帮助有哪三种 Dictionary 挂接方式?按复用性从高到低排列。
📌显示答案
- 数据元素挂接 — 所有引用该数据元素的字段都获得此帮助(最高复用)
- 检表挂接 — 所有引用该检表的外键字段都受益(高复用)
- 结构/表字段挂接 — 仅影响特定字段(最低复用,最高灵活性)
问题 6 - F4 帮助优先级 [recall]
当多个 F4 帮助机制同时存在时,系统的优先级顺序是什么?
📌显示答案
- 屏幕字段 POV 事件编程
- Screen Painter 中的搜索帮助挂接
- 结构/表字段上的搜索帮助
- 检表上的搜索帮助
- 数据元素上的搜索帮助
- 域固定值
- 时间相关检查表
系统使用最高优先级的可用机制。可通过右键菜单 Technical Info 查看当前使用的是哪个机制。
问题 7 - 集合搜索帮助 [recall]
什么是集合搜索帮助 (Collective Search Help)?它在界面上如何呈现?
📌显示答案
- 界面上显示为多个 Tab 页(每个基本帮助一个)
- 有自己的 IMPORT/EXPORT 参数,通过映射连接到各基本帮助
- 最近使用的 Tab 页自动激活(记忆功能)
- 集合帮助可以包含另一个集合帮助(嵌套)
问题 8 - 仅显示参数设计 [application]
你在搜索帮助中添加了一个仅用于显示附加信息的参数(如航空公司名称),但用户反馈每次新搜索前必须清空该字段。问题出在哪里?如何解决?
📌显示答案
解决:仅包含附加信息的参数不应设为 IMPORT,只设为 EXPORT 即可。这样该参数仅用于显示返回的附加信息,不会作为搜索条件。
问题 9 - Append 搜索帮助 [application]
SAP 标准表使用了一个集合搜索帮助,包含按名称和按编号两种搜索路径。客户需要添加一个按自定义分类的搜索路径,同时隐藏按编号的路径。如何实现?
📌显示答案
- 创建客户自己的 Append 搜索帮助(使用客户命名空间)
- 在 Append 中 Include 新的基本搜索帮助(按自定义分类)→ 添加搜索路径
- 在 Append 中 Include 不需要的 SAP 搜索帮助(按编号),并设置 Hidden 标志 → 隐藏
- Append 搜索帮助复用被扩展对象的接口
- 升级安全,不影响 SAP 升级
问题 10 - 搜索帮助综合设计 [analysis]
你需要为一个”国家”字段设计 F4 帮助。要求:(1) 显示国家代码和国家名称;(2) 名称按当前登录语言显示;(3) 用户可以按代码或名称搜索;(4) 不创建额外的视图对象。请说明最简方案。
📌显示答案
- 国家字段定义外键,引用国家表(如 T005)作为检表
- 国家表有文本表(如 T005T),系统自动使用当前登录语言的文本
- F4 帮助自动显示:
- 检表的键字段(国家代码)
- 文本表中当前语言的第一个字符型非键字段(国家名称)
无需创建任何视图或搜索帮助对象。外键 + 文本表的组合自动满足所有 4 个要求。
只有在需要更复杂的搜索逻辑时,才需要创建专门的搜索帮助和使用搜索帮助出口 (F4IF_SHLP_EXIT_EXAMPLE)。
📌模式总结(点击展开)
| Keyword (关键词) | Answer (答案) |
|---|---|
| IMPORT 参数 | 传入上下文(屏幕→帮助) |
| EXPORT 参数 | 返回选定值(帮助→屏幕) |
| 选择方法 | 表、数据库视图、帮助视图(不能用维护视图) |
| 对话类型 | 带限制值 / 取决于命中列表 / 无对话框 |
| 搜索字段传值 | 仅含通配符 * 或 + 时 |
| 挂接复用性 | 数据元素 > 检表 > 表字段 |
| 集合搜索帮助 | 多个 Tab 页 |
| Append 搜索帮助 | 复用接口,可添加/隐藏路径 |
| Exit 模板 | F4IF_SHLP_EXIT_EXAMPLE |
| 技术信息查看 | 右键 → Technical Info |