Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

S-Prozeduren schachteln

&pagelevel(3)&pagelevel

Wenn innerhalb einer Prozedur eine weitere Prozedur aufgerufen wird, wird diese Form des Prozeduraufrufs als „geschachtelter Aufruf“ bezeichnet. Die so entstehende Prozedurverknüpfung heißt dementsprechend Prozedurschachtelung.

Zu beachten ist, dass Prozeduren zwar geschachtelt aufgerufen werden dürfen; es dürfen jedoch nicht Prozeduren ineinander „geschrieben“ werden. Das heißt, jeder Prozedurbehälter kann immer nur eine Prozedur enthalten.

Werden geschachtelte Prozeduren aufgerufen, wird die innere Prozedur vollständig abgearbeitet, bevor sie die Steuerung an die aufrufende (= übergeordnete) Prozedur zurückgibt. Die gerufene Prozedur ist der rufenden Prozedur untergeordnet.

Für die Prozedur-Schachtelung gibt es drei Kommandos:

  • CALL-PROCEDURE und INCLUDE-PROCEDURE für den Prozeduraufruf

  • EXIT-PROCEDURE für die Prozedur-Beendigung

Das folgende Schema zeigt ein Beispiel für eine Prozedurschachtelung.

In diesem Beispiel wird PROC1 von der Systemebene aus aufgerufen; PROC1 ist die übergeordnete Prozedur für PROC2, PROC3 und PROC4. PROC2, PROC3 und PROC4 werden aus einer Prozedur heraus aufgerufen, sind also untergeordnete Prozeduren: PROC2 und PROC4 sind nur PROC1 untergeordnet, PROC3 ist PROC2 und PROC1 untergeordnet. PROC2 wiederum ist PROC3 übergeordnet.

Geschachtelte Prozeduren sind immer im Vordergrund aufgerufene Prozeduren. Daher gelten für Aufruf (bzw. Start), Ablauf und Beendigung die gleichen Regeln wie für Vorder-grund-Prozeduren, die von der Systemebene aus aufgerufen werden.

Geschachtelte Prozeduren dürfen Hintergrund-Prozeduren aufrufen. Diese Prozeduren werden allerdings nicht in der Aufrufer-Hierarchie geschachtelt, sondern leiten einen neuen Auftrag mit einer eigenen unabhängigen Prozedurschachtelung ein.

Wichtig beim Ablauf geschachtelter Prozeduren ist der gegenseitige Zugriff auf Variablen, das heißt auf Variablen, die in der über- oder in der untergeordneten Prozedur deklariert sind.

Ob Variablen in geschachtelten Prozeduren zugreifbar, das heißt sichtbar sind, hängt zum einen von der Deklaration des Geltungsbereichs der Variablen ab, zum anderen davon, mit welchem Kommando die Prozedur aufgerufen wird.

SDF-P bietet folgende Möglichkeiten, auf Variablen aus übergeordneten Prozeduren zuzugreifen:

  • Variablenname beim Prozeduraufruf als Prozedurparameter übergeben.

  • Taskglobale Variablen, die nicht sichtbar sind, neu deklarieren. Das bedeutet, dass jede dieser Variablen mit einem DECLARE-VARIABLE-Kommando deklariert werden muss, und zwar mit genau den gleichen Attributen wie in der übergeordneten Prozedur.

  • Taskglobale Variablen mit dem Kommando IMPORT-VARIABLE importieren.

Die Zusammenhänge zwischen der Sichtbarkeit von Variablen und dem Prozeduraufruf-Kommando sowie das „Neu-Deklarieren“ und das Importieren von Variablen sind detailliert im Abschnitt „Geltungsbereich von Variablen“ beschrieben.

Wie Variablennamen als Prozedurparameter übergeben werden, ist auf "Prozedurparameter übergeben " beschrieben.