SAP 逻辑数据库隐式包含宏。如何?

SAP logical database includes macro implicitly. How?

我们正在 Java 中编写一个工具来解析和转换 ABAP 代码。因此,我们无意编写新的 ABAP 代码,但我们的工具必须处理所有 ABAP,甚至是过时的语句。此外,我不是 ABAP 专家。

我们看到的一个对象使用了在对象 RFDBRMAC 中定义的宏 begin_of_block。如果使用逻辑数据库 BRF,则加载该包含;使用另一个逻辑数据库以及根本没有逻辑数据库都不会加载它。但是它的对应对象 SAPDBBRF 和它的 includes mention RFDBRMAC 都不存在。特别是前者none包含后者

如何将逻辑数据库 BRF 分配给程序使其包含 RFDBRMAC

使用逻辑数据库BRF的演示程序。宏是已知的

使用不同逻辑数据库的演示程序。宏未知

在事务SE36 中显示逻辑数据库BRF。然后单击按钮 'Selections'(或菜单:Goto / Selections 或 Shift + F1)。这将显示包含 DBBRFSEL,其中选择屏幕是为逻辑 DB 定义的。在此包含的底部,您会找到您要查找的内容。

为了将此推广到所有逻辑数据库,选择屏幕被命名为 DBxxxSEL,其中 xxx 是逻辑数据库的名称,并且自动包含在使用该逻辑数据库的所有程序中。

除了 Jozsef 的完美答案外,我还可以补充一点,您可以利用 table D010INC,它包含程序之间的所有包含关系,并且包含。

因此很容易以编程方式找到此类包含。