ABAP Keyword Documentation → ABAP - Reference → Program structure
ABAP Program Types
The type of an ABAP program determines, for example, which declarations and processing blocks a program can contain and how it can be executed in the ABAP runtime environment.
The following table lists all program types for standalone programs ( compilation units ) and what impact each of these has on their properties.
Program Type | Execution | Global Declarations | Processing Blocks | Dynpros | Text Pools |
---|---|---|---|---|---|
Executable program | SUBMIT statement or by calling a dynpro or selection screen using atransaction code |
Local interfaces and classes, all other declarative statements | All except function modules | Yes | Yes |
Class pool | Calling a visible method using CALL METHOD or atransactions code |
A global class of the class library, local interfaces and classes, TYPES and CONSTANTS statements |
Methods only | No | Yes |
Function group or function pool | Calling a function module using CALL FUNCTION or a dynpro using atransaction code |
Local interfaces and classes, all other declarative statements | All except event blocks for reporting events | Yes | Yes |
Interface pool | None | A global interface of the class library | None | No | No |
Module pool | Calling a dynpro using a transaction code | Local interfaces and classes, all declarative statements | All except function modules and event blocks for reporting events | Yes | Yes |
Subroutine pool | External calls to local procedures (subroutines or methods) | Local interfaces and classes, all other declarative statements | Event block LOAD-OF-PROGRAM , subroutines, methods |
No | Yes |
Type group or type pool | None | TYPES and CONSTANTS statements |
None | No | No |
The second table column indicates the type of execution primarily intended for the program. The third column indicates which declarations can be made in the global declaration section of a program of the specified type. The fourth column indicates which processing blocks the program can contain. The fifth column indicates whether your own dynpros are supported, and the last column indicates whether you can create your own text pools.