ABAP类型池:类型代码为TYPP但名称超过五个字符的程序

ABAP类型池:类型代码为TYPP但名称超过五个字符的程序,abap,Abap,我们正在用Java编写一个分析和转换ABAP代码的工具。因此,我们无意编写新的ABAP代码,但我们的工具必须处理所有的ABAP,甚至是过时的语句。此外,我不是ABAP专家 ABAP程序可以使用类型组,由关键字type-POOL引入。类型组的名称的最大长度为5(如果将前缀“%C”计算在内,则内部为8),其类型代码为TYPP。在过去,依靠这些假设对我们很有效 最近,我们看到ABAP程序的类型代码为TYPP,但名称长度超过5,例如“OIA================================

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

ABAP程序可以使用类型组,由关键字type-POOL引入。类型组的名称的最大长度为5(如果将前缀“%C”计算在内,则内部为8),其类型代码为TYPP。在过去,依靠这些假设对我们很有效

最近,我们看到ABAP程序的类型代码为TYPP,但名称长度超过5,例如“OIA=================================================p”。此外,对于这些对象中的每一个,都有另一个具有相同名称但包含类型代码的空对象。只有在使用常规类型组时,才会引用这些新对象

这些新对象可能是内部对象,与我们无关-我在ABAP关键字文档中没有看到任何对它们的引用。另一方面,它们让我们困惑,因为我们看到了它们

有人能给我解释一下这些东西的含义,并给我指一些文档吗

编辑:这里是SAP ERP 6.0系统的EHP7示例

一个示例对象。D010INC中的条目看起来很好:

同一对象现在使用类型pool mrm。附加费用从何而来?

这些对象是通过包含、扩展和交换对象引入的。阅读:

  • 选中类型pool
    MRM
    ,类型
    MRM\u idoc\u data\u ers
    -该类型包含一条语句以包括
    rmrmrm\u idoc\u data\u ers\u sbo
    。类似的include语句将
    rmrmrm\u upd\u arseg\u nfm
    拉入
    mrm\u upd\u arseg
    。这就解释了最后两行。您的解析器应该已经捕捉到了这一点
  • rmrmrm\u IDOC\u DATA\u ERS\u SBO
    包含一个名为
    rmrmrm\u IDOC\u DATA\u ERS\u SBO 02
    的增强点,该点属于增强点
    ES\u rmm\u IDOC\u DATA\u SBO
    。类似地,
    RMRM\u UPD\u ARSEG\u NFM
    包含属于增强点的增强点
    RMRM\u UPD\u ARSEG\u NFM\u 01
  • 对于
    ES\u RMRM\u IDOC\u DATA\u ERS\u SBO
    ,存在名为
    的增强实现ISAUTO\u MRM\u rmu IDOC\u DATA\u ERS
    。对于
    ES\u RMRM\u UPD\u ARSEG\u NFM
    ,存在名为
    /NFM/MM\u RMRM\u UPD\u ARSEG\u NFM
    的实现。这就解释了以
    =E
  • 实现
    ISAUTO\u MRM\u RMRM\u IDOC\u DATA\u ERS
    位于包
    ISAUTO\u MRM
    中。实现
    /NFM/MM\u RMRM\u UPD\u ARSEG\u NFM
    位于包
    /NFM/MM
    中。这就解释了以
    =P
    结尾的引用。显然,并不是为每个包生成这些引用:
  • ISAUTO\u MRM
    由开关
    AM\u ERS
    控制,包
    /NFM/MM
    由开关
    /NFM/MM
    控制。这解释了以
    =S
    结尾的引用

最终,这些引用可用于确定当交换机的状态更改时需要重新生成哪些程序。

这些对象通过包含、扩展和切换对象引入。阅读:

  • 选中类型pool
    MRM
    ,类型
    MRM\u idoc\u data\u ers
    -该类型包含一条语句以包括
    rmrmrm\u idoc\u data\u ers\u sbo
    。类似的include语句将
    rmrmrm\u upd\u arseg\u nfm
    拉入
    mrm\u upd\u arseg
    。这就解释了最后两行。您的解析器应该已经捕捉到了这一点
  • rmrmrm\u IDOC\u DATA\u ERS\u SBO
    包含一个名为
    rmrmrm\u IDOC\u DATA\u ERS\u SBO 02
    的增强点,该点属于增强点
    ES\u rmm\u IDOC\u DATA\u SBO
    。类似地,
    RMRM\u UPD\u ARSEG\u NFM
    包含属于增强点的增强点
    RMRM\u UPD\u ARSEG\u NFM\u 01
  • 对于
    ES\u RMRM\u IDOC\u DATA\u ERS\u SBO
    ,存在名为
    的增强实现ISAUTO\u MRM\u rmu IDOC\u DATA\u ERS
    。对于
    ES\u RMRM\u UPD\u ARSEG\u NFM
    ,存在名为
    /NFM/MM\u RMRM\u UPD\u ARSEG\u NFM
    的实现。这就解释了以
    =E
  • 实现
    ISAUTO\u MRM\u RMRM\u IDOC\u DATA\u ERS
    位于包
    ISAUTO\u MRM
    中。实现
    /NFM/MM\u RMRM\u UPD\u ARSEG\u NFM
    位于包
    /NFM/MM
    中。这就解释了以
    =P
    结尾的引用。显然,并不是为每个包生成这些引用:
  • ISAUTO\u MRM
    由开关
    AM\u ERS
    控制,包
    /NFM/MM
    由开关
    /NFM/MM
    控制。这解释了以
    =S
    结尾的引用

最后,这些引用可用于确定当交换机的状态更改时需要重新生成哪些程序。

首先,告诉我们您在哪里(在哪段代码中)看到它们,其次,在什么上下文中看到它们。结合什么陈述?它们在这些环境中的作用是什么?提供一些额外的参考资料,也许是截图。否则你的问题太抽象了。首先,告诉我们你在哪里(在哪段代码中)看到它们,其次,在什么上下文中看到它们。结合什么陈述?它们在这些环境中的作用是什么?提供一些额外的参考资料,也许是截图。否则你的问题太抽象了。这些
*=={P,S,E}
对象是什么类型的?我在表
TADIR
中找不到它们,就我所见,这些只是没有对象目录项的伪包含。这些
*===={P,S,E}
对象是什么类型的?据我所知,在表
TADIR
中没有找到它们