ABAP类型池:类型代码为TYPP但名称超过五个字符的程序
我们正在用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。附加费用从何而来?ABAP类型池:类型代码为TYPP但名称超过五个字符的程序,abap,Abap,我们正在用Java编写一个分析和转换ABAP代码的工具。因此,我们无意编写新的ABAP代码,但我们的工具必须处理所有的ABAP,甚至是过时的语句。此外,我不是ABAP专家 ABAP程序可以使用类型组,由关键字type-POOL引入。类型组的名称的最大长度为5(如果将前缀“%C”计算在内,则内部为8),其类型代码为TYPP。在过去,依靠这些假设对我们很有效 最近,我们看到ABAP程序的类型代码为TYPP,但名称长度超过5,例如“OIA================================
这些对象是通过包含、扩展和交换对象引入的。阅读:
- 选中类型pool
,类型MRM
-该类型包含一条语句以包括MRM\u idoc\u data\u ers
。类似的include语句将rmrmrm\u idoc\u data\u ers\u sbo
拉入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
。类似的include语句将rmrmrm\u idoc\u data\u ers\u sbo
拉入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
中没有找到它们