[英]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.