[英]ABAP type pool: program with type code TYPP but with name longer than five characters
我们正在用Java编写一个用于解析和转换ABAP代码的工具。 因此,我们无意编写新的ABAP代码,但我们的工具必须处理所有ABAP,甚至是过时的语句。 此外,我不是ABAP专家。
ABAP程序可以使用关键字TYPE-POOL引入的类型组。 类型组的名称最大长度为五个(内部八个,如果您加上前缀“%C”,则其名称代码为TYPP)。 过去,依靠这些假设对我们来说效果很好。
最近,我们看到类型代码为TYPP但名称超过5的ABAP程序,例如'OIA ========================== P' 。 此外,对于每个对象,还有另一个空对象,其名称相同,但类型码为INCL。 仅在也有常规类型组的情况下,才引用这些新对象。
这些新对象可能是内部对象,对我们而言无关紧要-在ABAP关键字文档中,我还没有看到对它们的任何引用。 另一方面,它们使我们感到困惑,因为我们看到了它们。
有人可以向我解释这些对象的含义并为我提供一些文档吗?
编辑:这里是EHP7 for SAP ERP 6.0系统的示例
这些对象是通过包含,扩展和交换对象引入的。 阅读:
MRM
,类型mrm_idoc_data_ers
该类型包含一个包含rmrm_idoc_data_ers_sbo
的语句。 类似的include语句将rmrm_upd_arseg_nfm
拉入mrm_upd_arseg
。 这就解释了最后两行。 您的解析器应该已经抓住了这一点。 RMRM_IDOC_DATA_ERS_SBO
包含一个名为RMRM_IDOC_DATA_ERS_SBO_02
的增强点,该增强点属于增强点ES_RMRM_IDOC_DATA_ERS_SBO
。 类似地, RMRM_UPD_ARSEG_NFM
包含属于增强点RMRM_UPD_ARSEG_NFM_01
的增强点ES_RMRM_UPD_ARSEG_NFM
。 ES_RMRM_IDOC_DATA_ERS_SBO
,存在名为ISAUTO_MRM_RMRM_IDOC_DATA_ERS
的增强实现。 对于ES_RMRM_UPD_ARSEG_NFM
,存在名为/NFM/MM_RMRM_UPD_ARSEG_NFM
的实现。 这就解释了以=E
结尾的引用 ISAUTO_MRM_RMRM_IDOC_DATA_ERS
位于包ISAUTO_MRM
。 实现/NFM/MM_RMRM_UPD_ARSEG_NFM
位于包/NFM/MM
。 这就解释了以=P
结尾的引用。 显然,并不是每个包都生成这些引用: ISAUTO_MRM
由开关AM_ERS
控制,包/NFM/MM
由开关/NFM/MM
。 这就解释了以=S
结尾的引用。 最终,这些参考可以用于确定在更改开关状态时需要重新生成哪些程序。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.