Show TOC Anfang des Inhaltsbereichs

Prozeduren  Dokument im Navigationsbaum lokalisieren

Aufgerufene Prozeduren, also Unterprogramme, Funktionsbausteine und Methoden, laufen immer im gleichen internen Modus wie das aufrufende Programm.

Diese Grafik wird im zugehörigen Text erklärtDiese Grafik wird im zugehörigen Text erklärt

Unterprogramme

Unterprogramme werden mit der Anweisung

PERFORM subrc[(prog)] ...

aufgerufen. Ohne den Zusatz (prog) handelt es sich um einen internen Aufruf. Das Unterprogramm liegt im aufrufenden Programm und muss nicht geladen werden.

Mit dem Zusatz (prog) handelt es sich um einen externen Aufruf. Das Unterprogramm liegt im Programm prog. Beim Aufruf wird das gesamte Programm prog in den internen Modus des Aufrufers geladen, falls es nicht schon zuvor geladen wurde. Das hinzu geladene Programm liegt in der Programmgruppe des Aufrufers. Nur falls das Unterprogramm in einer Funktionsgruppe liegt, bildet es eine neue Zusatzprogrammgruppe. Die Zugehörigkeit zu einer Programmgruppe entscheidet darüber, welche Schnittstellen-Arbeitsbereiche und Bildschirme ein extern aufgerufenenes Unterprogramm verwendet. Da diese Zuordnung sich dynamisch ändern kann, sollten externe Unteprogrammaufrufe vermieden werden.

Funktionsbausteine

Funktionsbausteine werden mit der Anweisung

CALL FUNCTION func ...

aufgerufen. Funktionsbausteinaufrufe sind in der Regel extern, es sei denn ein Funktionsbaustein wird in seiner Funktionsgruppe aufgerufen. Beim Aufruf wird die gesamte Funktionsgruppe des Funktionsbausteins in den internen Modus des Aufrufers geladen, falls sie nicht schon zuvor geladen wurde. Die Funktionsgruppe bildet im internen Modus zusätzlich zur Hauptprogrammgruppe eine neue Zusatzprogrammgruppe mit eigenen Schnittstellen-Arbeitsbereichen und Bildschirmen. Funktionsgruppen sind also besser zur Kapselung von Daten und Bildschirmen geeignet als externe Unterprogrammaufrufe.

Methoden

Methoden werden mit der Anweisung

CALL METHOD [ref->|class=>]meth ...

aufgerufen. Ohne die Bezeichner ref oder class handelt es sich um einen internen Aufruf in der eigenen Klasse. Die Klasse muss nicht erneut geladen werden.

Mit den Bezeichnern wird die Methode einer bestimmten Klasse entweder über eine Objektreferenz ref oder über den Klassennamen classaufgerufen. Beim Aufruf wird der gesamte Class-Pool der Methode in den internen Modus des Aufrufers geladen, falls er nicht schon zuvor geladen wurde. Der Class-Pool bildet im internen Modus eine neue Zusatzprogrammgruppe, die keine Daten und Bildschirme mir dem Aufrufer teilt und in der keine externen Unterprogramme aufgerufen werden können.

Aufgerufene Prozeduren verlassen

Aufgerufene Prozeduren können mit den Anweisungen

EXIT.

und

CHECK logexp.

programmgesteuert verlassen werden.

 

Ende des Inhaltsbereichs