Anfang des Inhaltsbereichs

Daten zwischen Programmen übergeben Dokument im Navigationsbaum lokalisieren

Bei der Datenübergabe an aufgerufene Programme müssen wir zwischen zwei Fällen unterscheiden:

Daten über interne Speicherbereiche übergeben

ABAP-Programme haben Zugriff auf zwei programmübergreifende Speicherbereiche (siehe Abbildung unter Speicherstrukturen eines ABAP-Programms), die zur Datenübergabe genutzt werden können.

SAP-Memory

Das SAP-Memory ist ein Speicherbereich, auf den sämtliche Hauptmodi eines SAP-GUI gemeinsamen Zugriff haben. Im SAP-Memory können also Daten sowohl programmübergreifend innerhalb eines Hauptodus als auch über einen Hauptmodus hinaus übergeben werden. Im SAP-Memory stehen für Anwendungsprogramme nur spezielle Parameter zur Verfügung, die sogenannten SPA/GPA-Parameter. Diese Parameter können z.B. bei der Systemanmeldung benutzerspezifisch oder aus ABAP-Programmen ablaufspezifisch mit der Anweisung SET PARAMETER gesetzt werden. Ein anderes ABAP-Programm kann die gesetzten Parameter dann mit der Anweisung GET PARAMETER wieder lesen. Die häufigste Verwendung der SPA/GPA-Parameter ist aber das Füllen Eingabefeldern auf Bildschirmen (siehe unten).

ABAP-Memory

Das ABAP-Memory ist ein Speicherbereich, auf den alle ABAP-Programme eines internen Modus über die Anweisungen EXPORT und IMPORT zugreifen können. Daten innerhalb dieses Speicherbereichs bleiben mit Ausnahem vom LEAVE TO TRANSACTION über eine Abfolge von Programmaufrufen erhalten. Um Daten an ein aufgerufenes Programm zu übergeben, müssen diese vor dem Programmaufruf aus dem aufrufenden internen Modus mit der EXPORT-Anweisung in das ABAP-Memory gestellt werden. Dann ersetzt der interne Modus des aufgerufenen Programms den internen Modus des aufrufenden Programms und die Daten können mit der IMPORT-Anweisung aus dem ABAP-Memory gelesen werden. Sollen bei Rückkehr ins aufrufende Programm wieder Daten übergeben werden, verläuft die Prozedur umgekehrt. Diese Anweisungen sind unter Daten-Cluster im ABAP-Memory ausführlich beschrieben. Beim Aufruf einer Transaktion über LEAVE TO TRANSACTION wird außer dem Aufrufstapel auch das ABAP Memory gelöscht und kann nicht zur Datenübergabe verwendet werden.

Da nur innerhalb eines internen Modus auf Objekte von ABAP Objects zugegriffen werden kann, macht es macht keinen Sinn und ist deshalb auch syntaktisch verboten über das ABAP-Memory eine Referenz auf ein Objekt an ein aufgerufenes Programm zu übergeben.

Eingabefelder des ersten Bildschirmbilds füllen

Die meisten aufgerufenen Programme haben ein Einstiegsbild, auf dem der Benutzer Eingabefelder mit Werten füllen muß. Bei ausführbaren Programmen ist das normalerweise das Selektionsbild. Die SUBMIT-Anweisung hat mehrere Zusätze, um die Eingabefelder des aufgerufenen Selektionsbilds zu füllen:

Selektionsbild des aufgerufenen Programms füllen

Die Eingabefelder von Dynpros können nicht durch Zusätze in den Aufruf-Anweisungen gefüllt werden. Stattdessen können SPA/GPA-Parameter aus dem SAP-Memory verwendet werden, um sie zu füllen:

Einstiegsbilder über SPA/GPA-Parameter füllen

Ende des Inhaltsbereichs