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|
||Local interfaces and classes, all other declarative statements||All except function modules||Yes||Yes|
|Class pool||Calling a visible method using
||A global class of the class library, local interfaces and classes,
|Function group or function pool||Calling a function module using
||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
|Type group or type pool||None||
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.