Skip to Content
Author's profile photo Jerry Wang

General properties of ABAP Classes / Interfaces

Every day you create or change ABAP class in class builder. When you activate your change, have you noticed a series of objects with several “=” in the middle part of each?

/wp-content/uploads/2014/03/clipboard1_410751.png

Technically speaking, an ABAP class consists of several parts. In order to figure them out, I just create a simple class with the following source code:

CLASS zcl_abap_class DEFINITION
  PUBLIC FINAL CREATE PUBLIC .

  PUBLIC SECTION.

    DATA public_attribure TYPE i .

    TYPES:BEGIN OF ty_global,

            name  TYPE string,

            score TYPE i,

          END OF ty_global.

    METHODS public .

protected section.

  data PROTECTED_ATTRIBUTE type I .

  methods PROTECTED .

  PRIVATE SECTION.

    DATA private_attribute TYPE i .

    METHODS private .

ENDCLASS.

CLASS ZCL_ABAP_CLASS IMPLEMENTATION.

  METHOD private.

  ENDMETHOD.

  method PROTECTED.

  endmethod.

  METHOD public.

  ENDMETHOD.

ENDCLASS.

I have also generated a local test class for it via SE80. After activation, look into corresponding entry in TRDIR.

/wp-content/uploads/2014/03/clipboard2_410752.png

The object name under column NAME could be opened via SE38. Take CCAU for example:

/wp-content/uploads/2014/03/clipboard3_410756.png

So CCAU contains the source code of local test class implementation:

/wp-content/uploads/2014/03/clipboard4_410757.png

Here below is the list of each part and its meaning:

Part Name Part meaning
CCAU contains the source code of local test class implementation
CCDEF Class-Relevant Local Definitions, contains the definitions of local classes inside the public class
CCIMP It contains the implementation for those local classes which definitions are stored in the Definitions-Include
CCMAC contains the macros of the public class
CI source code of private section
CO source code of protected section
CU source code of public section
CP open it in SE38, it will automatically navigate to class builder
CT open it in SE38, it will automatically navigate to class builder
CMXXX source code of each method

The constant of part name is defined in type group SEOP:

/wp-content/uploads/2014/03/clipboard7_410758.png

If you need to get the part name of a given class via ABAP code, you can use utility class CL_OO_CLASSNAME_SERVICE. There are corresponding getter method for each kind of part defined.

For example, if you need to get the part name of all methods of class CL_CRM_BOL_CORE, just set breakpoint in method CL_OO_CLASSNAME_SERVICE =>GET_ALL_METHOD_INCLUDES, and open the class CL_CRM_BOL_CORE in SE24, and click “Source Code-Based” button:

/wp-content/uploads/2014/03/clipboard8_410762.png

Here you can find the name class part for each method are populated with one incremental step in hexadecimal.

Assigned Tags

      16 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Sankara Bhatta
      Sankara Bhatta

      Hi,

      I always wondered what are those funny things. Now i know 🙂

      Author's profile photo Krishna Chaitanya
      Krishna Chaitanya

      Really good thought.  Appreciated your efforts.  Good to know more things in detailed.  🙂

      Regards,

      Krishna Chaitanya.

      Author's profile photo Dadarao Sopan Padghane
      Dadarao Sopan Padghane

      Good. Few of the details where known, but really good to bring out it as blog.

      Nice one dear.....

      Regards,

      Dadarao

      Author's profile photo Former Member
      Former Member

      Thanks for sharing usefull info......

      Author's profile photo Peter Inotai
      Peter Inotai

      Hi Jerry,

      Nice collection. Good job!

      I found the current blog title ("General properties of ABAP Classes / Interfaces") slightly misleading. Something like "Subobjects of ABAP Classes / Interfaces" or similar would describe your blog better.

      Cheers,

      Peter

      Author's profile photo Raghu Prasad
      Raghu Prasad

      Hi Jerry,

      Thank you very much. Very useful content.

      Regards,

      Raghu B

      Author's profile photo Former Member
      Former Member

      Very well explained. Thank you for sharing.

      Author's profile photo KC-VV Kompetenz Center Versicherte Vertri
      KC-VV Kompetenz Center Versicherte Vertri

      We have some old orphaned entrys of deleted classes in the TRDIR-Table. Exists any Report to reorganize this entrys?

      Regards

      Siegfried

      Author's profile photo Horst Keller
      Horst Keller

      Simply entering the following OK code, pressing enter, and chosing the class pool button afterwards shows the same ...

      /wp-content/uploads/2016/07/show_clif_996875.gif

      B.t.w., those "parts" are called include programs 😉

      Author's profile photo Peter Inotai
      Peter Inotai

      Nice hidden feature, didn't know it before. It's quite useful!

      Show_Clif(fhanger) 🙂

      Author's profile photo Jerry Wang
      Jerry Wang
      Blog Post Author

      Hello Horst,

      Never know this hidden feature till today. Thanks a lot for sharing!

      Best regards,

      Jerry

      Author's profile photo Kripa Rangachari
      Kripa Rangachari

      "Show_clif" -> Very New Learning!!!  - Thanks Horst Keller!!! 🙂

      & Thanks Jerry Wang for another Interesting Analysis and Blog! 😀

      Cheers,

      Kripa Rangachari.

      Author's profile photo Peter Inotai
      Peter Inotai

      Is there any plan to replace the classical ABAP editor to the new one in show_clif?

      Thanks,

      Peter

      Author's profile photo trupti agarwal
      trupti agarwal

      Useful Content..

      A class is used to specify the form of an object and it combines data representation and methods for manipulating that data into one neat package. The data and functions within a class are called members of the class.

      ABAP Objects makes this possible by using interfaces. Interfaces are independent structures that you can implement in a class to extend the scope of that class. The class-specific scope of a class is defined by its components and visibility sections.

      Thank You Very Much…Jerry Wang ? ?

      Author's profile photo Avinash D M
      Avinash D M

      Very useful information , Thanks for sharing this 🙂

      Author's profile photo Alexander Dürrstein
      Alexander Dürrstein

      In REPOSRC table we find another part name for classes like CL, CA, and CS.

      Besides that, there can be found multiple more endings.

      Can somebody explain them?

      • CL
      • CA
      • CS
      • E
      • EIMP
      • EMXXX
      • XT
      • XTI
      • IU
      • IP
      • IT
      • AB
      • TT
      • P
      • SB
      • S
      • SD
      • SQL
      • VC
      • BD
      • BDI
      • FT
      • D

      And some reports without any ending (see screenshot below).