Ansicht
Dokumentation

ABENINTERNAL_SESSION - INTERNAL SESSION

ABENINTERNAL_SESSION - INTERNAL SESSION

RFUMSV00 - Advance Return for Tax on Sales/Purchases   Fill RESBD Structure from EBP Component Structure  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Programme im internen Modus

Die folgende Abbildung zeigt die Organisation von Programmen innerhalb einer internen Sitzung einer ABAP-Sitzung in einer Benutzersitzung einer .

IMAGE @@ABDOC_Memory2.gif@@504@@620@@

Programmgruppen

In einen internen Modus können mehrere Programme geladen werden, die in Programmgruppen organisiert sind. Nach der Rückkehr aus einer internen Sitzung wird diese abgebaut. Es kann dann nicht mehr auf Daten und Objekte des internen Modus zugegriffen werden.

Hauptprogrammgruppe

Bei der Erzeugung einer internen Sitzung durch den Aufruf eines ABAP-Programms über SUBMIT oder einen Transaktionscode wird die Hauptprogrammgruppe angelegt und das aufgerufene Programm bildet deren Hauptprogramm. Die gesamte interne Sitzung lebt so lange, wie das Hauptprogramm der Hauptprogrammgruppe ausgeführt wird. Dieses kann ein ausführbares Programm, ein Modul-Pool oder ein Function-Pool sein.

Zusatzprogrammgruppe

Jedes Mal, wenn durch eine externe Verwendung ein neuer Class-Pool oder eines neuen Function-Pools geladen wird, wird eine Zusatzprogrammgruppe angelegt und der Class-Pool bzw. der Function-Pool ist das Hauptprogramm der Zusatzprogrammgruppe. Eine externe Verwendung ist in der Regel ein Zugriff auf die von Class-Pool bzw. Function-Pool exponierten Komponenten (sichtbare Komponenten der globalen Klasse bzw. Funktionsbausteine), kann aber auch ein Zugriff auf lokale Komponenten, wie z.B. bei einer Typangabe über absolute Typnamen sein. Eine Zusatzprogrammgruppe bleibt mit ihren Daten für die gesamte Lebensdauer des internen Modus vorhanden.

Hauptprogramm einer Programmgruppe

Das zuerst geladene Programm einer Programmgruppe ist das Hauptprogramm dieser Gruppe. Das Hauptprogramm einer Hauptprogrammgruppe ist das erste durch einen Programmaufruf in die interne Sitzung geladene Programm (ausführbares Programm, Modul-Pool oder Function-Pool). Das Hauptprogramm einer Zusatzprogrammgruppe ist ein Class-Pool oder ein Function-Pool, bei deren Laden die Zusatzprogrammgruppe gebildet wird.

Hinzugeladene Programme einer Programmgruppe

Wenn Programme, die keine Funktionsgruppen oder Class-Pools sind, durch eine externe Verwendung geladen werden, bilden sie keine Zusatzprogrammgruppe sondern werden in die Programmgruppe des Verwenders hinzugeladen. Dies geschieht beispielsweise

  • beim externen Aufruf von Unterprogrammen, die in ausführbaren Programmen, Modul-Pools oder Subroutinen-Pools definiert sind,
  • beim dynamischen Zugriff auf einen lokalen Daten- oder Objekttyp eines ausführbaren Programms, eines Modul-Pools oder eines Subroutinen-Pools über absolute Typnamen,

Hinweise

  • Für die Zuordnung eines Programms zu einer Programmgruppe ist nicht der Programmtyp, sondern die programmeinleitende Anweisung ausschlaggebend. Wenn beispielsweise in einem Subroutinen-Pool die Anweisung FUNCTION-POOL statt PROGRAM verwendet wird, bildet das Programm beim Laden durch eine externe Verwendung eine neue Zusatzprogrammgruppe.
  • Da alle Programme einer Programmgruppe gemeinsam die Schnittstellen-Arbeitsbereiche, Dynpros, Listen und GUI-Status des Hauptprogramms verwenden (siehe unten), ist die Zuordnung eines hinzugeladenen Programms zu seiner Programmgruppe besonders zu beachten, wenn Prozeduren eines solchen Programms extern aufgerufen werden.

Datenobjekte

Die Datenobjekte eines Programms gehören mit Ausnahme der Schnittstellen-Arbeitsbereiche exklusiv zu ihrem Programm und sind nur dort sichtbar. Ein geladenes Programm lebt solange wie der interne Modus. Nach der Rückkehr aus einem Programm bleiben dessen Datenobjekte erhalten und stehen bei einem erneuten Aufruf einer Prozedur des Programms wieder zur Verfügung.

Instanzen von Klassen

Objekte als Instanzen von Klassen können von allen Programmen (und Objekten) eines internen Modus verwendet werden. Ein Objekt lebt solange, wie es Verwender für, d.h., Referenzen auf, das Objekt gibt.

Hinweis

Es können also Referenzen auf Objekte der internen Sitzung an extern aufgerufene Prozeduren übergeben werden.

Schnittstellenarbeitsbereiche

Mit TABLES oder DATA BEGIN$|END OF COMMON PART ... deklarierte Datenobjekte sind Schnittstellen-Arbeitsbereiche. Sie werden pro Programmgruppe nur einmal angelegt und von allen Programmen einer Programmgruppe gemeinsam genutzt.

Hinweis

Die Zuordnung eines Programms zu einer Programmgruppe und damit die Festlegung, mit welchen anderen Programmen es sich die Schnittstellen-Arbeitsbereiche teilt, kann von der Verwendungsreihenfolge abhängen.

Dynpros, Listen und GUI-Status

Nur die Dynpros des Hauptprogramms einer Programmgruppe können über CALL SCREEN aufgerufen werden. Nach dem Laden eines internen Modus sind dies die Dynpros des Hauptprogramms der Hauptprogrammgruppe. Die Hauptprogramme (Funktionsgruppen) von Zusatzprogrammgruppen können ebenfalls ihre eigenen Dynpros aufrufen.

Listen sind immer der aktuellen Dynpro-Folge und damit ebenfalls dem Hauptprogramm der Programmgruppe zugeordnet.

Standardmäßig wird mitSET PF-STATUS auf den GUI-Status des Hauptprogramms einer Programmgruppe zugegriffen und dessen Datenobjekte für dynamische Texte verwendet.

Alle Programme einer Programmgruppe arbeiten standardmäßig mit den Dynpros, Listen und GUI-Status des Hauptprogramms. Eine Anweisung CALL SCREEN in einem extern aufgerufenen Unterprogramm ruft beispielsweise nie ein Dynpro der eigenen Kompilationseinheit. Es werden die Dialogmodule und Listenereignis-Blöcke des Hauptprogramms ausgeführt.






CPI1466 during Backup   PERFORM Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 9277 Date: 20240523 Time: 152554     sap01-206 ( 140 ms )