ABAP - Schlüsselwortdokumentation →  ABAP - Referenz →  Obsolete Sprachelemente →  Obsolete Modularisierung →  Unterprogramme → 

FORM

Kurzreferenz

Obsolete Syntax

FORM subr [TABLES table_parameters]
          [USING parameters]
          [CHANGING parameters]
          [RAISING exc1|RESUMABLE(exc1) exc2|RESUMABLE(exc2) ...].
  ...
ENDFORM.

Zusätze:

1. ... TABLES table_parameters

2. ... USING parameters

3. ... CHANGING parameters

4. ... RAISING exc1|RESUMABLE(exc1) exc2|RESUMABLE(exc2) ...

Wirkung

Die Anweisung FORM definiert ein Unterprogramm subr und seine Schnittstelle. Für den Namen subr gelten die Namenskonventionen. Zwischen den Anweisungen FORM und ENDFORM wird die Funktionalität des Unterprogramms subr implementiert. Mit den Zusätzen werden die Formalparameter des Unterprogramms definiert und das Propagieren klassenbasierter Ausnahmen an den Aufrufer deklariert.

Innerhalb des Unterprogramms können lokale Datentypen und Datenobjekte deklariert werden. Darüber hinaus besteht Zugriff auf die Formalparameter des Unterprogramms sowie auf die globalen Datentypen und Datenobjekte des Rahmenprogramms.

Ein Unterprogramm wird mit der Anweisung PERFORM aufgerufen.

Hinweis

Unterprogramme sind obsolet. In neuen Programmen sollten statt dessen Methoden angelegt werden.

Zusatz 1

... TABLES table_parameters

Wirkung

Mit TABLES werden Tabellenparameter table_parameters deklariert. Tabellenparameter sind obsolete Formalparameter, die als interne Standardtabellen mit Kopfzeile typisiert sind. Der Zusatz TABLES kann nur vor USING oder CHANGING aufgeführt werden.

Wenn eine interne Tabelle ohne Kopfzeile bzw. ein Tabellenkörper als Aktualparameter an einen solchen Formalparameter übergeben wird, wird im Unterprogramm eine leere lokale Kopfzeile generiert. Wird eine interne Tabelle mit Kopfzeile als Aktualparameter verwendet, werden sowohl der Tabellenkörper als auch die Kopfzeile an das Unterprogramm übergeben. Bei mit TABLES definierten Formalparametern ist keine Wertübergabe möglich.

Hinweise

Zusatz 2

... USING parameters

Zusatz 3

... CHANGING parameters

Wirkung

Diese Zusätze definieren Formalparameter parameters. Formalparameter können im Unterprogramm wie Datenobjekte an allen Operandenpositionen verwendet werden, die zu ihrer Typisierung und ihre durch USING oder CHANGING definierte Änderbarkeit passen.

Bei der Definition der Formalparameter parameters gibt es die Möglichkeit entweder Referenz- oder Wertübergabe festzulegen. Die Wirkung dieser Festlegung für mit USING und CHANGING definierte Formalparameter ist wie folgt:

Hinweise

Beispiel

In dem Unterprogramm kann der Formalparameter ptab an einer Operandenposition verwendet werden, die eine Indextabelle erwartet, da er entsprechend typisiert ist. Der Formalparameter wa ist vollständig generisch und es wird erst zur Laufzeit geprüft, ob er zum Zeilentyp der internen Tabelle passt.

FORM fill_table USING    wa   TYPE any
                CHANGING ptab TYPE INDEX TABLE.
  APPEND wa TO ptab.
ENDFORM.

Zusatz 4

... RAISING exc1|RESUMABLE(exc1) exc2|RESUMABLE(exc2) ...

Wirkung

Mit dem Zusatz RAISING können klassenbasierte Ausnahmen exc1 exc2 ... deklariert werden, die im Unterprogramm von der ABAP-Laufzeitumgebung oder mit der Anweisung RAISE EXCEPTION bzw. mit dem Zusatz THROW in einem bedingten Ausdruck ausgelöst bzw. in dieses propagiert, aber nicht in einem TRY-Block behandelt werden. Explizit deklarierbar sind Unterklassen von CX_STATIC_CHECK und CX_DYNAMIC_CHECK. Unterklassen von CX_NO_CHECK werden implizit immer und mit dem Zusatz RESUMABLE deklariert.

Für exc1 exc2 ... können alle an dieser Stelle sichtbaren Ausnahmeklassen, die Unterklassen von CX_STATIC_CHECK CX_DYNAMIC_CHECK sind, angegeben werden. Die Ausnahmeklassen müssen in aufsteigender Reihenfolge bezüglich ihrer Vererbungshierarchie angegeben werden. Jede Ausnahmeklasse darf nur ein einziges Mal angegeben werden.

Tritt im Unterprogramm eine Ausnahme dieser Oberklassen auf, die weder behandelt werden noch deklariert sind, führt dies entweder zu einem Syntaxfehler oder zu einer vom Aufrufer behandelbaren Ausnahme CX_SY_NO_HANDLER.

Mit dem Zusatz RESUMABLE wird eine Ausnahme so deklariert, dass sie als wiederaufsetzbare Ausnahme propagiert werden kann. D.h.:

Wenn eine Oberklasse als wiederaufsetzbar deklariert ist, müssen gleichzeitig aufgeführte Unterklassen ebenfalls als wiederaufsetzbar deklariert sein.

Hinweise



Weiterlesen
FORM - parameters
FORM - STRUCTURE
FORM - table_parameters