共計 1390 個字符,預計需要花費 4 分鐘才能閱讀完成。
本篇內容介紹了“ABAP CCDEF 是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓丸趣 TV 小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
我們新建一個 ABAP 類之后,完成代碼編寫,第一次激活時,會看到這些以類的名稱開頭,中間跟著一大段 = 符號,以五個字符結尾的對象出現在待激活列表里。它們是什么鬼?
我們來動手研究一番。Jerry 在 2019 豬年大年三十寫的文章 SAP GUI 和 Windows 注冊表 曾經提到 Windows 系統的注冊表,而 ABAP Netweaver 也有屬于自己的注冊表:TADIR 和 TRDIR. 無論在 SE80 或者是 SE11 事務碼里創建的對象,在這兩張表里都會留下一些痕跡。
創建一個最簡單的 ABAP 類,包含 public,protected 和 private 方法和屬性各一個,麻雀雖小,五臟俱全。
激活之后,在注冊表 TRDIR 里根據類的名字 ZCL_ABAP_CLASS 進行查詢,得到如下記錄:
由此可見,ABAP 里的類 (Class), 技術上是通過若干可以通過 SE38 直接打開的 ABAP include 程序組成:
對于上述 TRDIR 里的記錄,我們可以逐一用 SE38 打開,搞清楚它們到底代表什么含義。
CCAU
這個 AU 的含義可以用 ABAP Unit 來幫助記憶。
SE38 打開 include 程序之后,自動進入下面這個界面,發現 CCAU 程序存儲的是這個類的單元測試代碼。
CCDEF
DEF 代表 Definition(定義). SE38 里打開 ZCL_ABAP_ >
此處維護的是 ABAP 類的局部定義,包括類的局部類,局部接口,局部類型定義等等。
也可以先進入 SE24,然后點擊 Local Definitions/Implementations 打開。
CCIMP
IMP 代表 implementation(實現). SE38 打開 ZCL_ABAP_ >
CI
類的私有區域定義。
CO
類的 protected 區域定義。
CU
類的公有區域定義。

CMXXX
CM 代表 Class Method,XXX 是類的方法序號,基于 16 進制,從 1 開始遞增,例如 CM001 存儲類的第一個方法的實現代碼,CM002 代表第二個方法,以此類推。
例如,SE38 里打開 ZCL_ABAP_ >

ZCL_ABAP_ >

ZCL_ABAP_ >

CCMAC
MAC 是 Macro(宏) 的縮寫,存儲類的宏定義。

如何用代碼的方式獲得一個類的這些不同的 ABAP include 程序名稱呢?
使用 ABAP 工具類 CL_OO_CLASSNAME_SERVICE:

比如我想知道 CL_CRM_BOL_CORE 這個類所有方法對應的 include 名稱,那么在工具類的 GET_ALL_METHOD_INCLUDES 打個斷點,
然后 SE24 里打開 CL_CRM_BOL_CORE,點擊 Source Code Based:

斷點立即觸發,從調用棧能看出,為了在 Source Code 模式下顯示出 ABAP 類的完整代碼,需要把散落存儲在各個 include 程序里的代碼讀取出來。

類方法和其 include 程序名稱的對應關系一目了然。

在 ABAP Type Group SEOP 里,存儲了本文介紹的以 CC 開頭的 include 類型的常量定義。

“ABAP CCDEF 是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注丸趣 TV 網站,丸趣 TV 小編將為大家輸出更多高質量的實用文章!