Die folgenden Abschnitte führen die möglichen Verarbeitungsblöcke von ABAP-Programmen und ihren Aufruf ein, der entweder von außerhalb des ABAP-Programms (dies ist der Fall bei Dialogmodulen und Ereignisblöcken) oder durch ABAP-Befehle, die selbst wieder in Verarbeitungsblöcken stehen, erfolgen kann.
Dialogmodule werden aus der Dynpro-Ablauflogik aufgerufen (Dynpro-Befehl MODULE). Für die verschiedenen Zustände eine Dynpros (PAI, PBO, Benutzereingaben) können somit im zugeordneten ABAP-Programm Dialogmodule programmiert werden. Die Zusammenfassung aller PAI- und PBO-Module zweier aufeinanderfolgender Dynpros ist die Verarbeitungslogik eines Dialogschritts. Das Zusammenspiel zwischen Ablauflogik und Bildschirmen steuert ein Dialogprozessor.
Syntaktisch werden Dialogmodule durch die Anweisung MODULE eingeleitet und durch die Anweisung ENDMODULEbeendet.
Die Datenübergabe zwischen Dynpros und ABAP-Programm erfolgt dadurch, dass in Dynpros und ABAP-Programm namensgleiche Felder verwendet werden. Die Dynpros werden nicht im ABAP-Programm definiert.
Ereignisblöcke werden aufgrund von Ereignissen aufgerufen, die durch Benutzeraktionen auf Selektionsbildern und Listen oder durch die ABAP-Laufzeitumgebung ausgelöst werden. Nur für diejenigen Ereignisse, auf die das Programm reagieren soll, müssen Ereignisblöcke definiert sein (während z.B. zu einem Unterprogrammaufruf sehr wohl ein Unterprogramm existieren muss). Das bedeutet, dass ein ABAP-Programm auf bestimmte Ereignisse reagieren kann, aber nicht muss.
Direkt nach dem Laden eines ausführbaren Programms, eines Modul-Pools, einer Funktionsgruppe und eines Subroutinen-Pools kann ein spezieller Verarbeitungsblock genau einmal ausgeführt werden. Dieser Verarbeitungsblock wird mit dem Ereignisschlüsselwort LOAD-OF-PROGRAM als Ereignisblock definiert. Der Verarbeitungsblock zu LOAD-OF-PROGRAM spielt für diese ABAP-Programme in etwa die gleiche Rolle, wie ein Konstruktor für Klassen.
Die verschiedenen Zustände eines Selektionsbilds (PAI, PBO, Benutzereingaben) werden von einem Selektionsbildprozessor in bestimmte Ereignisse verwandelt und für diese können im Programm die Ereignisblöcke zu Selektionsbildern programmiert werden. Der Selektionsbildprozessor umfasst auch die Dynpro-Ablauflogik des Selektionsbilds.
Der Programmierer erstellt die Dynpro-Ablauflogik eines Selektionsbilds nicht selbst und für die entsprechenden Dynpro-Ereignisse PBO und PAI können keine eigenen Dialogmodule angelegt werden. Die Datenübergabe zwischen Selektionsbildern und ABAP-Programm erfolgt über die Felder (Parameter und Selektionstabellen), die bei der Definition des Selektionsbilds im Deklarationsteil des ABAP-Programms angelegt werden.
Listen werden in beliebigen Verarbeitungsblöcken eines ABAP-Programms über einen speziellen Befehlssatz erzeugt (Listen-Anweisungen sind z.B. WRITE, NEW-PAGE). Ein Listenprozessor erledigt die Anzeige von Listen auf Bildschirmen und die Behandlung von Benutzeraktionen auf Listen. Der Listenprozessor umfasst auch die Dynpro-Ablauflogik der Listen. Der Programmierer erstellt die Dynpro-Ablauflogik einer Liste nicht selbst und für die entsprechenden Dynpro-Ereignisse PBO und PAI können keine eigenen Dialogmodule angelegt werden.
Während der Listenerstellung kann es zum Aufruf von bestimmten Ereignisblöcken kommen, die der Seitengestaltung dienen. Im obigen Bild ist das der Ereignisblock TOP-OF-PAGE, der sozusagen aus dem ABAP-Programm selbst aufgerufen wird. Während der Listenanzeige kann der Benutzer Interaktionen ausführen, welche der Listenprozessor in Ereignisse (z.B. AT LINE-SELECTION) verwandelt. Im Programm können Ereignisblöcke für diese interaktiven Listenereignisse programmiert werden. Die Datenübergabe von der Liste zu dem ABAP-Programm erfolgt über spezielle Variablen oder über einen internen Speicherbereich, den sogenannten HIDE-Bereich.
Beim Start von ausführbaren Programmen übernimmt ein in der Laufzeitumgebung vorgegebener Ablauf die Kontrolle. Es werden eine Reihe bestimmter Prozessoren hintereinander ausgeführt. Diese Prozessoren lösen bestimmte Ereignisse aus, für die Ereignisblöcke definiert werden können. Ausführbare ABAP-Programme sind also ereignisorientiert.
Der Ablauf ist wie folgt:
...
1. Die Laufzeitumgebung erzeugt das Ereignis INITIALIZATION und ruft damit den entsprechenden Ereignisblock auf, falls er im ABAP-Programm definiert ist.
2. Falls im Deklarationsteil des Programms ein Selektionsbild deklariert ist, geht die Kontrolle an den Selektionsbildprozessor über. Dieser erzeugt die entsprechenden Ereignisse und ruft dadurch die zugehörigen Ereignisblöcke auf.
3. Die Kontrolle geht an den so genannten Reporting-Prozessor über. Dieser erzeugt ein Ereignis START-OF-SELECTION und ruft damit den entsprechenden Ereignisblock auf, falls er im ABAP-Programm definiert ist.
4. Falls eine logische Datenbank verwendet wird, ruft die logische Datenbank an dieser Stelle weitere Ereignisblöcke auf.
5. Der Reporting-Prozessor erzeugt ein Ereignis END-OF-SELECTION und ruft damit den entsprechenden Ereignisblock auf, falls er im ABAP-Programm definiert ist.
6. Falls im Programm eine Liste beschrieben wurde, geht die Kontrolle an den Listenprozessor über. Der Listenprozessor stellt die im ABAP-Programm beschriebene Liste dar. Er verwandelt Benutzeraktionen auf der Liste in Ereignisse und ruft dadurch die zugehörigen Ereignisblöcke auf.
7. Falls im Deklarationsteil des Programms ein Selektionsbild deklariert ist, wird nach Beendigung des Programms (Verlassen der Liste), das gleiche Programm automatisch wieder aufgerufen.
Prozeduren stellen aufrufbare Verarbeitungsblöcke dar, die eine Schnittstelle und einen lokalen Datenbereich enthalten.
Unterprogramme werden aus ABAP-Programmen (Anweisung PERFORM) aufgerufen.
Syntaktisch werden Unterprogramme durch die Anweisung FORM eingeleitet und durch die Anweisung ENDFORMbeendet.
Unterprogramme können in beliebigen ABAP-Programmen definiert werden. Der Aufruf von Unterprogrammen über die Anweisung PERFORM erfolgt entweder innerhalb eines ABAP-Programms als interne Unterprogramme oder über Programmgrenzen hinweg als externe Unterprogramme. Bei internen PERFORMs können globale Daten zur Datenübergabe verwendet werden. Bei externen Aufrufen muss eine parametrisierte Übergabe von Aktual- an Formalparameter erfolgen.
Funktionsbausteine sind externe Funktionen mit fest definierter Schnittstelle. Funktionsbausteine werden aus ABAP-Programmen mit der Anweisung CALL FUNCTION aufgerufen.
Syntaktisch werden Funktionsbausteine durch die Anweisung FUNCTION eingeleitet und durch die Anweisung ENDFUNCTIONbeendet.
Funktionsbausteine werden ausschließlich mit dem Werkzeug Function Builder der ABAP Workbench innerhalb spezieller ABAP-Programme namens Funktionsgruppen definiert. Aus anderen ABAP-Programmen sind sie also nur extern aufrufbar. Im Unterschied zu Unterprogrammen erfolgt die Datenübergabe daher immer über eine explizit definierte Parameter-Schnittstelle.
Methoden enthalten die Funktionalität von Klassen. Wie Funktionsbausteine haben sie eine fest definierte Schnittstelle. Methoden werden aus ABAP-Programmen mit der Anweisung CALL METHOD aufgerufen.
Syntaktisch werden Methoden durch die Anweisung METHOD eingeleitet und durch die Anweisung ENDMETHODbeendet.
Methoden werden ausschließlich im Implementierungsteil von Klassen definiert. Dies geschieht entweder global mit dem Werkzeug Class Builder der ABAP Workbench oder lokal innerhalb von ABAP-Programmen. Methoden arbeiten mit Attributen ihrer Klasse oder mit Daten, die über die explizit definierte Parameter-Schnittstelle übergeben werden.