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 TABLESELECT ... 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-仪表盘/快速参考]]