Ansicht
Dokumentation

ABAPCALL_TRANSACTION - CALL TRANSACTION

ABAPCALL_TRANSACTION - CALL TRANSACTION

BAL_S_LOG - Application Log: Log header data   PERFORM Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

CALL TRANSACTION

Kurzreferenz



Einfacher Transaktionsaufruf

1. CALL TRANSACTION ta WITH$|WITHOUT AUTHORITY-CHECK $[AND SKIP FIRST SCREEN$].

Transaktionsaufruf über Batch-Input-Tabelle

2. CALL TRANSACTION ta WITH$|WITHOUT AUTHORITY-CHECK
                      USING bdc_tab ${ ${$[MODE mode$] $[UPDATE upd$]$}
                                    $|  $[OPTIONS FROM opt$] $}
                                       $[MESSAGES INTO itab$].


Wirkung

Die Anweisung CALL TRANSACTION ruft die Transaktion auf, deren Transaktionscode in dem Datenobjekt ta enthalten ist. Das aufrufende Programm bleibt mit seinen Daten erhalten. Nach Beendigung des Transaktionsaufrufs wird die Programmausführung des aufrufenden Programms hinter der Anweisung CALL TRANSACTION fortgesetzt. 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. Falls die in ta angegebene Transaktion nicht gefunden wird, kommt es zu einer unbehandelbaren Ausnahme.

  • In der ersten Variante kann die Anzeige des Einstiegs-Dynpros unterdrückt werden.

In beiden Varianten kann eine Berechtigungsprüfung für die aufgerufene Transaktion ausgeführt werden.

Beim Aufruf der Transaktion wird das ABAP-Programm, mit dem der Transaktionscode verknüpft ist, in einer neuen internen Sitzung der aktuellen Aufrufkette geladen. Der Modus des aufrufenden Programms und die aktuelle SAP-LUW bleiben erhalten. Das aufgerufene Programm läuft in einer eigenen SAP-LUW.

  • Falls die aufgerufene Transaktion eine Dialogtransaktion ist, wird nach dem Laden des ABAP-Programms das Ereignis LOAD-OF-PROGRAM ausgelöst und dann das Dynpro aufgerufen, das als Einstiegs-Dynpro der Transaktion definiert ist. Das Einstiegs-Dynpro ist das erste Dynpro einer Dynpro-Folge. Die Transaktion ist beendet, wenn die Dynpro-Folge durch Erreichen des Folge-Dynpros mit der Dynpro-Nummer 0 beendet oder das Programm mit der Anweisung LEAVE PROGRAM verlassen wird.
  • Falls die aufgerufene Transaktion eine OO-Transaktion ist, wird beim Laden aller Programme außer Class-Pools das Ereignis LOAD-OF-PROGRAM ausgelöst und dann die Methode aufgerufen, die mit dem Transaktionscode verknüpft ist. Falls die Methode eine Instanzmethode ist, wird implizit ein Objekt der zugehörigen Klasse erzeugt und vom Laufzeit-Framework referenziert. Die Transaktion ist beendet, wenn die Methode beendet oder das Programm mit der Anweisung LEAVE PROGRAM verlassen wird.

Hinweise

  • Die Anzahl der internen Sitzungen einer Aufrufkette ist auf neun begrenzt. Wird diese durch CALL TRANSACTION überschritten, wird das Programm abgebrochen und die gesamte Aufrufkette wird gelöscht. Siehe Dynamische Aufrufe.

Beispiel

Aufruf der Transaktion DEMO_TRANSACTION im ausführbaren Beispielprogramm DEMO_CALL_TRANSACTION_SPA_GPA.

Transaktionsaufruf - Beispiele

Ausnahmen

Behandelbare Ausnahmen

CX_SY_AUTHORIZATION_ERROR

  • Ursache: Keine Berechtigung für die aufgerufene Transaktion.
    Laufzeitfehler: CALL_TRANSACTION_NO_AUTH

Unbehandelbare Ausnahmen

  • Ursache: Transaktion wurde nicht gefunden.
    Laufzeitfehler: CALL_TRANSACTION_NOT_FOUND
  • Ursache: Transaktion ist ein Bereichsmenü und daher nicht aufrufbar.
    Laufzeitfehler: CALL_TRANSACTION_IS_MENU
  • Ursache: Transaktion ist gesperrt.
    Laufzeitfehler: CALL_TRANSACTION_LOCKED
  • Ursache: Fehler in der internen Speicherverwaltung
    Laufzeitfehler: CALL_TRANSACTION_MSG_NO_PAGING
  • Ursache: Rekursiver Aufruf einer Transaktion mit dem Zusatz USING.
    Laufzeitfehler: CALL_TRANSACTION_USING_NESTED





ROGBILLS - Synchronize billing plans   SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 10557 Date: 20240424 Time: 120840     sap01-206 ( 124 ms )