BC400 - 考试陷阱
考试陷阱 — BC400 常见错误
#dashboard #exam-traps #abap
⚠️用途
BC400 课程中经常出错的考试题目和常见误区的集合。
数据类型
⛔陷阱:类型 N 是数值类型
- 错误:N(数字字符)是像 I、F、P 一样的数值类型
- 正确:N 是一种字符串类型,只允许数字——它不是数值类型,不能用于算术运算。
- 数据类型与数据对象
⛔陷阱:不完整的标准类型有固定长度
- 错误:所有 ABAP 标准类型都有固定长度
- 正确:类型 C、N、X、P 是不完整的——必须指定长度。只有 D、T、I、F、STRING、XSTRING、DECFLOAT16/34 是完整的(固定长度)。
- 数据类型与数据对象
模块化
⛔陷阱:子程序可以从其他程序调用
- 错误:PERFORM form IN PROGRAM 是一种好的模块化技术
- 正确:虽然技术上可行,但跨程序调用子程序违反封装原则,不应使用。请改用函数模块或类方法。
- 子程序
⛔陷阱:函数模块和方法有相同的参数类型
- 错误:两者都相同地使用 IMPORTING/EXPORTING/CHANGING
- 正确:子程序仅支持 USING/CHANGING(不支持 IMPORTING/EXPORTING)。方法额外支持 RETURNING 参数。
- 模块化概述
⛔陷阱:BAPI 会抛出常规异常
- 错误:BAPI 函数模块像其他函数模块一样抛出异常
- 正确:BAPI 不得抛出异常。错误通过特殊导出参数
RETURN报告。 - 函数模块与BAPI
内表
⛔陷阱:APPEND 适用于所有表类型
- 错误:可以对排序表和哈希表使用 APPEND
- 正确:APPEND 仅适用于标准表。排序表和哈希表请使用 INSERT。
- 内表
⛔陷阱:表头行推荐用于新程序
- 错误:带表头行的内表可以简化代码
- 正确:表头行已过时,不应在新程序中使用。它们在 ABAP Objects 或嵌套数据对象中不被允许。
- 内表
⛔陷阱:默认键对内表有用
- 错误:默认键是表定义的良好默认值
- 正确:默认键使用所有非数字字段,通常没有实际意义。应始终定义显式键。
- 内表
数据库访问
⛔陷阱:SELECT SINGLE 总是恰好返回一条记录
- 错误:SELECT SINGLE 保证有结果
- 正确:SELECT SINGLE 可能不返回任何记录——务必检查
sy-subrc。如果存在多条匹配记录,它返回第一条。 - Open SQL数据库访问
⛔陷阱:INTO TABLE 与 SELECT 循环中的 INTO
- 错误:
SELECT ... INTO TABLE和SELECT ... INTO ... ENDSELECT可以互换 - 正确:
INTO TABLE是数组提取(批量读取,一次数据库访问)。INTO ... ENDSELECT是循环(多次数据库访问)。数组提取效率更高。 - Open SQL数据库访问
⛔陷阱:仓库对象是特定客户端的
- 错误:仓库对象属于特定客户端
- 正确:仓库对象是跨客户端的——可从系统中的任何客户端访问。
- 仓库与对象导航器
用户对话
⛔陷阱:屏幕 PBO 和 PAI 可以互换
- 错误:PBO 和 PAI 可以包含相同的逻辑
- 正确:PBO 在屏幕显示前运行(设置默认值、修改屏幕)。PAI 在用户操作后运行(处理输入、确定下一屏幕)。
- 屏幕编程
⛔陷阱:SELECTION-SCREEN 事件顺序不重要
- 错误:INITIALIZATION 和 AT SELECTION-SCREEN 可以以任意顺序排列
- 正确:事件顺序:INITIALIZATION(屏幕显示前)→ AT SELECTION-SCREEN(用户输入后)→ START-OF-SELECTION(主处理)。
- 经典ABAP报表
SAP 软件调整
⛔陷阱:修改是调整 SAP 软件的推荐方式
- 错误:修改是一种有效的首选方法
- 正确:增强始终优于修改。修改在升级时需要调整,并造成显著的维护开销。
- 调整SAP标准软件
⛔陷阱:原件可以被传输覆盖
- 错误:传输可以覆盖原件
- 正确:原件永远不会被传输覆盖。原始系统是对象的”出生地”。
- 调整SAP标准软件
相关内容
- [[_posts/SAP_ABAP/BC400_ABAP工作台/00-仪表盘/学习地图]] → 薄弱领域部分
- [[_posts/SAP_ABAP/BC400_ABAP工作台/00-仪表盘/快速参考]]