对象依赖关系 (★★)
对象依赖关系 (★★)
#abap #abap-dictionary
概览表
| Concept (概念) | Key Point (要点) |
|---|---|
| Runtime Object | ABAP 程序使用的内部格式 |
| Where-Used List | 查找对象引用关系 |
| Activation | 修改后必须激活才能生效 |
依赖关系类型
Dictionary 中的对象之间存在复杂的依赖关系:
1 | Domain |
运行时对象 (Runtime Object)
- Dictionary 中的定义被编译为运行时对象
- 存储在系统表中(如 DD02L for tables, DD03L for fields)
- ABAP 程序和 Screen Painter 访问的是运行时对象
- 修改后必须激活才能更新运行时对象
⚠️不一致问题
如果运行时对象与 Dictionary 定义不一致,ABAP 程序可能出错。
激活时系统自动检查并更新运行时对象。
激活时系统自动检查并更新运行时对象。
Where-Used List (使用处清单)
| Function (功能) | Access (访问) |
|---|---|
| 查找域的使用 | SE11 → Domain → Where-Used |
| 查找数据元素的使用 | SE11 → Data Element → Where-Used |
| 查找表的使用 | SE11 → Table → Where-Used |
用途:
- 评估修改影响范围
- 确定哪些程序/表会受变更影响
- 计划重构或迁移
激活过程
1 | 修改对象 → 保存( inactive version ) |
- 可通过
Utilities → Activation Log查看激活结果 - 失败的激活会给出具体错误信息
- 依赖的对象可能需要一起重新激活