Ansicht
Dokumentation

ABAPLEAVE_TO_TRANSACTION - LEAVE TO TRANSACTION

ABAPLEAVE_TO_TRANSACTION - LEAVE TO TRANSACTION

Addresses (Business Address Services)   General Data in Customer Master  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

LEAVE TO TRANSACTION

Kurzreferenz


LEAVE TO ${ ${TRANSACTION ta$} $| ${CURRENT TRANSACTION$} $}
         $[AND SKIP FIRST SCREEN$].


Zusatz:

... AND SKIP FIRST SCREEN

Wirkung

Die Anweisung LEAVE TO TRANSACTION ruft entweder die Transaktion, deren Transaktionscode in dem Datenobjekt ta enthalten ist, oder die aktuelle Transaktion auf und verlässt dabei die aktuelle Aufrufkette. Das Datenobjekt ta muss zeichenartig und flach sein und den Transaktionscode in Großbuchstaben enthalten. Es können folgende Angaben für ta unterschieden werden:

  • Literal oder Konstante
Wenn das Datenobjekt ta als Textfeldliteral oder als Konstante angegeben ist, wird es von Werkzeugen wie der erweiterten Programmprüfung oder dem Verwendungsnachweis wie eine statische Angabe ausgewertet.
  • Variable
Wenn das Datenobjekt ta als Variable angegeben ist, ist dies eine rein dynamische Angabe und es findet keine statische Auswertung des Inhalts statt.

Bei Ausführung der Anweisung wird ta in beiden Fällen erst zur Laufzeit ausgewertet.

Bei der Angabe von CURRENT TRANSACTION wird die aktuelle Transaktion mit dem Transaktionscode aufgerufen, mit dem sie über CALL TRANSACTION oder LEAVE TO TRANSACTION aufgerufen wurde. Dies ist außer bei einer Parameter- oder Variantentransaktion der Transaktionscode, der sich auch im Systemfeld sy-tcode befindet. Bei Parameter- oder Variantentransaktionen ist es deren Transaktionscode, während sy-tcode den Namen der implizit gerufenen Dialogtransaktion enthält.

Bei LEAVE TO TRANSACTION wird die aktuelle Aufrufkette vollständig verlassen und nach Beendigung der aufgerufenen Transaktion hinter die Stelle zurückgekehrt, an der das erste Programm der Aufrufkette aufgerufen wurde und die aktuelle SAP-LUW wird beendet.

Bei Aufruf der Transaktion wird das ABAP-Programm, mit dem der Transaktionscode verknüpft ist, in eine neue interne Sitzung geladen. Alle vorhergehenden internen Modi werden vom Stack gelöscht. Gleichzeitig wird das ABAP Memory gelöscht, sodass bei LEAVE TO TRANSACTION keine Datenübergabe mit EXPORT FROM MEMORY bzw. IMPORT TO MEMORY möglich ist.

Der Ablauf einer aufgerufenen Dialogtransaktion bzw. OO -Transaktion ist derselbe wie bei CALL TRANSACTION. Nach Beendigung der aufgerufenen Transaktion wird an die Stelle zurückgekehrt, an der das erste Programm der aktuellen Aufrufkette aufgerufen wurde.

Falls die in ta angegebene Transaktion nicht gefunden wird oder ta initial ist bzw. ein Leerzeichen enthält, wird der Stack der aktuellen Aufrufkette abgebaut und direkt an die Stelle zurückgekehrt, an der das erste Programm der aktuellen Aufrufkette aufgerufen wurde. Falls ta nicht initial ist, wird dabei eine entsprechende Meldung in der Statusleiste angezeigt.

Die Anweisung LEAVE TO TRANSACTION beendet immer die aktuelle Aufrufkette, unabhängig davon, ob eine neue Transaktion aufgerufen werden kann oder nicht.

Im Gegensatz zur Anweisung CALL TRANSACTION wird bei der Anweisung LEAVE TO TRANSACTION die Berechtigung des aktuellen Benutzers zur Ausführung der aufgerufenen Transaktion immer automatisch überprüft und zwar gegen

  • das eventuell bei der Definition des Transaktionscodes (Pflegetransaktion SE93) angegebene Berechtigungsobjekt. Felder des Berechtigungsobjekts, für die dort kein Wert angegeben ist, werden nicht überprüft.

Wenn keine Berechtigung vorliegt wird eine Nachricht vom Nachrichtentyp A (Abbruchmeldung) ausgelöst und das System verhält sich entsprechend.

Hinweise

  • Der Aufruf mit CURRENT TRANSACTION kann verwendet werden, um eine aktuelle Parameter- oder Variantentransaktion erneut mit den zugehörigen Parametern bzw. der Transaktionsvariante auszuführen. Alternativ dazu kann man sich den Transaktionscode der aktuellen Transaktion mit der statischen Methode GET_CURRENT_TRANSACTION der Klasse CL_DYNPRO besorgen, die während einer Parameter- oder Variantentransaktion deren Transaktionscode und nicht den der implizit gerufenen Dialogtransaktion zurückgibt.
  • Wenn bei LEAVE TO TRANSACTION in der aktuellen SAP-LUW noch Prozeduren registriert sind, wird die SAP-LUW beendet, ohne dass die Prozeduren aufgerufen oder zurückgerollt werden. Registrierte Verbuchungsfunktionsbausteine bleiben auf der Datenbank vorhanden, können aber nicht mehr ausgeführt werden. In einem solchen Fall sollte vor dem Programmaufruf deshalb explizit die Anweisung COMMIT WORK oder ROLLBACK WORK ausgeführt werden. Siehe Dynamische Aufrufe.

Zusatz

... AND SKIP FIRST SCREEN

Wirkung

Der Zusatz AND SKIP FIRST SCREEN hat die gleiche Bedeutung wie bei CALL TRANSACTION.

Beispiel

Aufruf der Transaktion DEMO_TRANSACTION mit Unterdrückung des ersten Bildschirmbilds.






RFUMSV00 - Advance Return for Tax on Sales/Purchases   ROGBILLS - Synchronize billing plans  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 9252 Date: 20240420 Time: 084410     sap01-206 ( 116 ms )