ABAP CCDEF是什么

74次阅读
没有评论

共计 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

类的公有区域定义。

ABAP CCDEF 是什么

CMXXX

CM 代表 Class Method,XXX 是类的方法序号,基于 16 进制,从 1 开始递增,例如 CM001 存储类的第一个方法的实现代码,CM002 代表第二个方法,以此类推。

例如,SE38 里打开 ZCL_ABAP_ >

ABAP CCDEF 是什么

ZCL_ABAP_ >

ABAP CCDEF 是什么

ZCL_ABAP_ >

ABAP CCDEF 是什么

CCMAC

MAC 是 Macro(宏) 的缩写,存储类的宏定义。

ABAP CCDEF 是什么

如何用代码的方式获得一个类的这些不同的 ABAP include 程序名称呢?

使用 ABAP 工具类 CL_OO_CLASSNAME_SERVICE:

ABAP CCDEF 是什么

比如我想知道 CL_CRM_BOL_CORE 这个类所有方法对应的 include 名称,那么在工具类的 GET_ALL_METHOD_INCLUDES 打个断点,

然后 SE24 里打开 CL_CRM_BOL_CORE,点击 Source Code Based:

ABAP CCDEF 是什么

断点立即触发,从调用栈能看出,为了在 Source Code 模式下显示出 ABAP 类的完整代码,需要把散落存储在各个 include 程序里的代码读取出来。

ABAP CCDEF 是什么

类方法和其 include 程序名称的对应关系一目了然。

ABAP CCDEF 是什么

在 ABAP Type Group SEOP 里,存储了本文介绍的以 CC 开头的 include 类型的常量定义。

ABAP CCDEF 是什么

“ABAP CCDEF 是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注丸趣 TV 网站,丸趣 TV 小编将为大家输出更多高质量的实用文章!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-16发表,共计1390字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)