`
JerryWang_SAP
  • 浏览: 1078718 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

ABAP CCDEF, CCIMP, CCMAC, CCAU, CMXXX这些东东是什么鬼

阅读更多

本文是鼠年第二篇文章,也是汪子熙公众号第201篇原创文章。

今天是鼠年大年初二,不知道昨天的大年初一,大家过得如何?

最近这段非常时期,像Jerry这类宅男,能够理直气壮地以“响应国家号召,不给国家和社会添乱”为理由宅在家里。

 

为了降低对病毒的恐惧感,让我们继续学习,分散下对疾病的注意力。

我们新建一个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_CLASS================CCDEF,看到的是这个界面:

此处维护的是ABAP类的局部定义,包括类的局部类,局部接口,局部类型定义等等。

也可以先进入SE24,然后点击Local Definitions/Implementations打开。

CCIMP

IMP代表implementation(实现). SE38打开ZCL_ABAP_CLASS================CCIMP, 能看到局部类的实现。

CI

类的私有区域定义。

CO

类的protected区域定义。

CU

类的公有区域定义。

CMXXX

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

例如,SE38里打开ZCL_ABAP_CLASS================CM001,看到的是第一个私有方法的源代码:

ZCL_ABAP_CLASS================CM002:

ZCL_ABAP_CLASS================CM003:

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类型的常量定义。

相信阅读了本文之后,下次大家在各个场合里遇到以CCXXX结尾的这些ABAP include,不会再觉得一头雾水了。感谢阅读,祝大家新年快乐。

0
0
分享到:
评论

相关推荐

    ABAP 调用ABAP PROXY

    在SAP系统中,ABAP调用ABAP Proxy是一种常见的技术操作,用于在不同系统间或者同一系统内的组件之间实现通信。ABAP Proxy是SAP提供的一个强大的接口技术,它允许开发者创建安全、高效的远程调用机制。接下来,我们将...

    SAP_ABAP_4.7.rar_SAP abap4_abap_abap chm_abap 4_abap4

    《SAP ABAP 4.7开发指南》 在企业级信息技术领域,SAP系统扮演着至关重要的角色,尤其在企业资源规划(ERP)方面。SAP ABAP(Advanced Business Application Programming)是SAP系统中的一种编程语言,用于开发、...

    ABAP4编程宝典中文版 abap魔鬼教程

    ABAP4编程宝典中文版,也被称为ABAP魔鬼教程,是学习SAP ABAP语言的重要参考资料。ABAP,全称为Advanced Business Application Programming,是一种专为SAP系统设计的编程语言,广泛应用于企业级应用软件的开发。在...

    abap-ALV.rar_ABAP系统ALV_abap_abap开发alv

    标题“abap-ALV.rar_ABAP系统ALV_abap_abap开发alv”暗示我们将深入探讨ABAP ALV的使用,特别是在ABAP系统中的应用以及如何进行开发。 描述中提到“ABAP ALV总结,ALV格式,REUSE_ALV_GRID_DISPLAY_LVC函数使用”,...

    ABAP GIT 项目 AI SDK FOR ABAP 代码

    ABAP(Advanced Business Application Programming)是SAP公司开发的一种编程语言,主要用于开发和扩展SAP系统。Git是一种分布式版本控制系统,广泛用于软件开发中的代码管理。在这个“ABAP GIT 项目 AI SDK FOR ...

    ABAP开发从入门到精通-高清自学版 SAP+ABAP开发从入门到精通 SAP开发自学必读 SAP SAP开发自学入门到精通

    同时,"SAP开发自学必读"提示我们,这些资料可能包含了一些SAP开发的关键知识点,例如模块池编程(Seamless Workbench for ABAP,简称SE80),用于创建图形用户界面(GUI)的应用程序。 "SAP SAP开发自学入门到精通...

    ABAP OLE颜色代码

    ABAP OLE 颜色代码 ABAP OLE 颜色代码是指在 ABAP 编程语言中使用的颜色代码。这些代码用于在用户界面中显示不同的颜色,例如背景颜色、文字颜色、按钮颜色等。 在 ABAP 中,颜色代码通常以 šestnaestkovo ...

    abap逻辑数据库ABAP数据库操作

    标题和描述所涉及的知识点主要集中在ABAP语言在SAP系统中对数据库的操作和管理。由于这部分内容比较专业,我将尽量详细地阐述ABAP(Advanced Business Application Programming)逻辑数据库和数据库操作的概念和用法...

    abap7.4 新特性

    #### ABAP 7.40 是什么? ABAP 7.40 是 SAP NetWeaver 7.40 的一部分,它继承了 AS ABAP 7.31 (又称为 AS ABAP 7.03),并在此基础上进行了增强。值得注意的是,尽管版本号上有一定的跳跃,但 ABAP 7.40 并不是 AS ...

    abap 函数大全 abap function

    ABAP(Advanced Business Application Programming)是SAP公司开发的一种编程语言,主要用于开发SAP系统中的业务应用程序。在SAP环境中,ABAP函数模块是ABAP编程的重要组成部分,它们提供了预定义的功能,允许开发者...

    内含ABAP入门资源(11天学会ABAP)以级中级ABAP篇,高级ABAP资料

    - ABAP的基础概念:了解ABAP是什么,它的作用以及在SAP系统中的地位。 - 数据类型:ABAP中的基本数据类型如CHAR, NUMC, INT, FLOAT等,以及它们的用途。 - 变量声明:如何定义和使用变量,以及变量的作用域。 - ...

    ABAP751 ABAP - Keyword Documentation

    ABAP - Keyword Documentation This documentation describes the syntax and meaning of the keywords of the ABAP language and its object-oriented part ABAP Objects. Alongside this, language frameworks ...

    30天学会ABAP很好的教程

    ABAP,全称为Advanced Business Application Programming,是一种高级业务应用编程语言,主要被用于SAP(System Applications and Products in Data Processing)系统中进行企业级应用程序的开发。本教程以"30天学会...

    sap abap query高级功能

    SAP ABAP Query 是 SAP 系统中一种用于创建自定义报表的强大工具,尤其适合那些对 SQL 不太熟悉或者没有数据库直接访问权限的用户。它提供了丰富的功能,使得开发人员可以构建复杂的数据查询,而无需编写大量的 ABAP...

    ABAP 常用函数总结

    ABAP 常用函数总结 ABAP 开发中,函数是非常重要的一部分,合理地使用函数可以大大提高开发效率和代码质量。本文总结了 ABAP 中常用的函数,包括日期计算、表操作、数据转换、权限检查、报表生成、PDF 转换、日期...

    abap xlsx2 demo 程序

    在ABAP(Advanced Business Application Programming)环境中,处理Excel文件(通常以.xlsx格式存在)是常见的需求,例如数据导入导出、报表生成等。"abap xlsx2 demo 程序"是一个示例项目,旨在展示如何在SAP系统中...

    abap关键字的查询帮助

    ABAP(Advanced Business Application Programming)是SAP公司开发的一种编程语言,主要用于开发在SAP系统上的业务应用程序。本文将深入探讨ABAP的关键字查询帮助,为初学者提供一个清晰的入门指南。 首先,理解...

    abap学习资料abap

    ABAP(Advanced Business ...通过系统地学习和实践这些知识点,读者可以在三个月内建立起扎实的ABAP基础,为后续的SAP项目开发或系统维护工作做好准备。记得理论结合实践,不断编写和调试代码,以加深理解和提高技能。

    《abap经典面试题》

    "ABAP经典面试题" ABAP是一种高级编程语言,用于开发SAP R/3系统中的应用程序。本文总结了ABAP经典面试题,涵盖了ABAP基础知识、数据对象、语句、报表程序设计等多方面的知识点。 1.ABAP基础知识 在ABAP中,数据...

Global site tag (gtag.js) - Google Analytics