ABAP Keyword Documentation → ABAP − Reference → Declarations → Declaration Statements → Classes and Interfaces → ABAP Objects - Overview → Statements in ABAP Objects
Statements in Class and Interface Pools
Class pools and interface pools are the ABAP programs in the class library. They are defined in the ABAP Development Tools (ADT) or using the Class Builder tool in ABAP Workbench and are used as a repository for global classes and interfaces.
- A program of program type
class pool is launched using the statement
CLASS-POOL
.
- A program of program type
interface pool is launched using the statement
INTERFACE-POOL
.
These statements are generated by Class Builder.
Each class pool or interface pool can only contain a single global class or a single global interface. These classes or interfaces are declared using the following statements:
Class Builder uses the properties entered here to generate these statements.
Other versions: 7.31 | 7.40 | 7.54
Further Statements in Class Pools
As well as the declaration of the global class, a class pool can only contain the following statements:
- Declaration of local data types using the statement
TYPES
. These data types can be used by the global class in the private visibility section and in the implementation part.
- Declaration of local constants using the statement CONSTANTS. These data types can be used by the global class in the private visibility section and in the implementation part.
- Declaration of local interfaces using the statements
INTERFACE ...
ENDINTERFACE
. These data types can be used by the global class in the private visibility section and in the implementation part.
- Declaration and implementation of local classes using the statements
CLASS ...
ENDCLASS
. These data types can be used by the global class in the private visibility section and in the implementation part.
- Definition of macros using
DEFINE
...END-OF-DEFINITION
. These macros can be used by the global class in the implementation part.
Locally defined types, classes, and interfaces in class pools can be used in the following ways:
- Only the methods of the global class access the local declarations and implementations in the program. These provide auxiliary methods, for example, which should not be displayed in the interface of the global class. This is the most common scenario. Any changes made to local declarations in the program do not influence the interface of the global class.
- As well as the methods in the global class, declarations in the private visibility section of the class also reference local declarations in the program. This is a more unusual scenario, in which changes made to the local declarations influence the interface of the global class, and subclasses and friends of the global class are recompiled before the program is executed again.
Further Statements in Interface Pools
In addition to the declaration of the global interface, an interface pool cannot contain any of its
own declarations or implementations. The obsolete statement TYPE-POOLS
is also possible in syntax.
Program Organization
Like any other ABAP program, class pools and interface pools consist of a global declaration part for declarations and an implementation part for implementations (or procedures).
- This means that the global declaration part of a class pool can contain the declarations of local data types, local interfaces, and local classes, as well as the actual declaration part of the global class. The implementation part of a class pool can contain the implementation parts of local classes, as well as the implementation part of the global class.
- The global declaration part of an interface pool can only contain the declaration of the global interface. The implementation part of an interface pool is always empty.
The ABAP Development Tools (ADT) or Class Builder organize the various declarations and implementations of a class pool or interface pool in include programs. Developers cannot usually view the names of these programs. A function in Class Builder enables the associated include programs to be opened and edited in ABAP Editor. Include programs exist for:
- Each visibility section in the declaration part of the global class
- Each implementation of a method of the global class
- Local declarations and implementations
- Test Classes for ABAP Unit
To edit the global class, Class Builder provides you with both editing functions for the individual include programs and a source code-based mode in which you can display all the include programs as a single program and edit them.
Restrictions
Apart from the statements specified above, no statements other than CLASS - ENDCLASS
and INTERFACE - ENDINTERFACE
are required in class pools (in fact, they are not allowed here). The
stricter syntax of ABAP Objects applies to all statements permitted.
The following restrictions are particularly important:
- No processing blocks except methods
START-OF-SELECTION
, AT SELECTION-SCREEN
,
GET, or AT LINE-SELECTION
and dialog modules (defined by MODULE
- ENDMODULE) are not allowed. This means that runtime environment events cannot be processed. ABAP Objects has its own event concept.
Function modules and
subroutines cannot be defined
using FUNCTION - ENDFUNCTION
or FORM - ENDFORM
. The methods of a class pool can still call external function modules and subroutines, as well as methods.
- No interface work areas to other programs
TABLES
and NODES
and the addition
COMMON PART
of the DATA
statement are not possible. This means that class pools and interface pools do not support any global data areas across programs within a single
internal session.
- No dedicated screens
- No processing of extracts
FIELD-GROUPS
is not permitted in class or interface pools.