考试陷阱
考试陷阱
#dashboard #exam-traps
⚠️本笔记目的
BC402 高级ABAP 课程中常见的易错点和考试陷阱集锦。
算术与数据类型
⛔陷阱:** 运算符导致整数除法变化
int = ( 1 / 4 ) * ( 2 * 2 ) → 0(整数算术取整)int = ( 1 / 4 ) * ( 2 ** 2 ) → 1(** 触发二进制浮点运算!)** 运算符即使所有操作数都是 i 类型也会强制使用二进制浮点运算。算术表达式
⛔陷阱:大数字字面量超出类型 i 范围
10000000000 超出类型 i 范围,因此变为类型 p,改变了算术类型。int = 1000000000 / 300000000 * 3 → 9(整数算术)int = 10000000000 / 3000000000 * 3 → 10(压缩算术)算术表达式
⛔陷阱:定点算术程序属性
程序调用与内存
⛔陷阱:LEAVE TO TRANSACTION 销毁 ABAP 内存
⛔陷阱:函数组在不同内部会话中分别加载
如果两个内部会话调用同一函数组的函数模块,每个会话获得独立的全局数据副本。无法跨会话共享数据。
运行时与内存管理
运行时与内存管理
⛔陷阱:外部子程序调用共享程序组
内表
⛔陷阱:标准表使用 BINARY SEARCH 需先排序
⛔陷阱:DELETE ADJACENT DUPLICATES 需要已排序的表
⛔陷阱:COLLECT 仅适用于扁平行类型
⛔陷阱:哈希表不支持索引访问
动态编程
⛔陷阱:动态标识符需要括号,不能有空格
⛔陷阱:泛型数据引用必须使用 ASSIGN 解引用
⛔陷阱:RTTC 不能生成类或接口
RTTC 仅限于数据类型。不能动态创建类或接口类型。
运行时类型创建
运行时类型创建
Open SQL
⛔陷阱:FOR ALL ENTRIES 空驱动表
⛔陷阱:JOIN 绕过表缓冲
Open SQL JOIN 不使用 SAP 表缓冲。即使表已配置缓冲也会被忽略。对缓冲表应使用单表访问。
数据库接口与缓冲
数据库接口与缓冲
⛔陷阱:DISTINCT 与聚合函数
SELECT COUNT( DISTINCT col ) 计算不同值的数量。SELECT DISTINCT col COUNT(*) 无效。DISTINCT 作用于结果集,而非聚合中的个别列。SQL 聚合与处理
⛔陷阱:外连接——右侧只允许一个表
检查点与测试
⛔陷阱:静态断点留在生产系统
⛔陷阱:LOG-POINT 必须指定检查点组
性能
⛔陷阱:循环中的 SELECT *
最常见的性能杀手。始终用 JOIN、FOR ALL ENTRIES 或预缓冲到内表来替代。
数据库性能
数据库性能
⛔陷阱:标准表线性搜索处理大数据集
相关链接
- [[_posts/SAP_ABAP/BC402_ABAP高阶技巧/00-仪表盘/学习地图]] → 薄弱环节部分
- [[_posts/SAP_ABAP/BC402_ABAP高阶技巧/00-仪表盘/快速参考]]