Show TOC Anfang des Inhaltsbereichs

Programmeinleitende Anweisungen  Dokument im Navigationsbaum lokalisieren

In der Regel ist jedem Programmtyp eine bestimmte einleitende Anweisung zugeordnet:

 

Programmtyp

Einleitende Anweisung

Ausführbares Programm

REPORT

Modul-Pool

PROGRAM

Funktionsgruppe

FUNCTION-POOL

Class-Pool

CLASS-POOL

Interface-Pool

INTERFACE-POOL

Subroutinen-Pool

PROGRAM

Typgruppe

TYPE-POOL

Include-Programm

-

 

Include-Programme sind keine Kompilations-, sondern reine Quelltext-Modularisierungseinheiten, die immer nur im Kontext übergeordneter Programme verwendet werden. Insofern gehört zu einem Include-Programm keine besondere programmeinleitende Anweisung.

Hinweis:

Die Zuordnung von programmeinleitenden Anweisungen zu den in den Programmeigenschaften festgelegten Programmtypen ist nicht syntaktisch vorgeschrieben. Es sollte aber dennoch immer die in obiger Tabelle gezeigte Zuordnung verwendet werden. Beim Anlegen eines Programms wird die passende Anweisung von der ABAP Workbench automatisch erzeugt und sollte beim Editieren nur in den Zusätzen verändert werden.  Insbesondere sollten die Schlüsselwörter FUNCTION-POOL, CLASS-POOL, INTERFACE-POOL und TYPE-POOLausschließlich von den entsprechenden Werkzeugen der ABAP Workbench erzeugt und niemals selbst in den Quelltext eingetragen werden, um unerwartetes System­­verhalten zu vermeiden.

 

Im Folgenden wird auf die Funktionalität der einleitenden Anweisungen eingegangen:

REPORT und PROGRAM

Die programmeinleitenden Anweisungen REPORT und PROGRAM sind derzeit funktional gleichwertig. Sie können die Nachrichtenklasse für das Programm und die Aufbereitungsoptionen für die Standardliste des Programms festlegen. Ob ein Programm als Report ausführbar ist oder nur Dynpro-gesteuert über einen Transaktionscode gestartet werden kann, hängt ausschließlich am Programmtyp und nicht an der programmeinleitenden Anweisung. Dennoch sollten Modul-Pools und Subroutinen-Pools immer mit einer PROGRAM-Anweisung und ausführbare Programme immer mit einer REPORT-Anweisung beginnen.

FUNCTION-POOL

Die programmeinleitende Anweisung FUNCTION-POOL ermöglicht die Definition von Funktionsbausteinen und bewirkt zur Laufzeit, dass beim Laden des Programms eine neue Programmgruppe mit eigenen Bildschirmen und eigenen gemeinsamen Datenbereichen im internen Modus des aufrufenden Programms angelegt wird. Insofern müssen Funktionsgruppen immer mit einer FUNCTION-POOL-Anweisung beginnen. Die Anweisung FUNCTION-POOL wird in der Regel vom Werkzeug Function Builder generiert. Andere Programme (ausführbare Programme, Modul-Pools und Subroutinen-Pools) sollten nicht mit einer FUNCTION-POOL-Anweisung eingeleitet werden, da ansonsten gemeinsame Datenbereiche beim Laden durch einen externen Unterprogrammaufruf nicht mit dem Aufrufer geteilt werden. Andererseits kann man ausnahmsweise die Verarbeitung eigener Bildschirmbilder für extern aufgerufene Unterprogramme erzwingen, wenn man ausführbare Programme oder Modul-Pools mit FUNCTION-POOL einleitet. Wie bei REPORT und PROGRAM können mit FUNCTION-POOL die Nachrichtenklasse für das Programm und die Aufbereitungsoptionen für die Standardliste des Programms festgelegt werden.

CLASS-POOL und INTERFACE-POOL

Die programmeinleitenden Anweisungen CLASS-POOL und INTERFACE-POOL sind einzig und allein für Klassen- und Interface-Definitionen vorgesehen. In mit CLASS-POOLeingeleiteten Programmen können nur globale Typdefinitionen und Definitionen von Klassen und Interfaces stehen. In mit INTERFACE-POOL eingeleiteten Programmen kann nur die Definition eines globalen Interfaces stehen. Die Anweisungen CLASS-POOLund INTERFACE-POOLdürfen ausschließlich vom Werkzeug Class Builder generiert werden.

TYPE-POOL

Die programmeinleitende Anweisung TYPE-POOL ist einzig und allein für Typgruppen  vorgesehen. In mit TYPE-POOL eingeleiteten Programmen können nur globale Typdefinitionen und Deklarationen von Konstanten stehen. Die Anweisung TYPE-POOLdarf ausschließlich vom Werkzeug Dictionary generiert werden.

 

 

Ende des Inhaltsbereichs