Saturday, 15 April 2017

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?

SAP ABAP Tutorials and Materials, SAP ABAP Guide, SAP ABAP Certifictions

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.

SAP ABAP Tutorials and Materials, SAP ABAP Guide, SAP ABAP Certifictions

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

SAP ABAP Tutorials and Materials, SAP ABAP Guide, SAP ABAP Certifictions

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

SAP ABAP Tutorials and Materials, SAP ABAP Guide, SAP ABAP Certifictions

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:

SAP ABAP Tutorials and Materials, SAP ABAP Guide, SAP ABAP Certifictions

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:

SAP ABAP Tutorials and Materials, SAP ABAP Guide, SAP ABAP Certifictions

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

No comments:

Post a Comment