Ansicht
Dokumentation

ABAPCALL_DIALOG - CALL DIALOG

ABAPCALL_DIALOG - CALL DIALOG

BAL Application Log Documentation   BAL Application Log Documentation  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

CALL DIALOG

Kurzreferenz



CALL DIALOG dialog $[ ${AND SKIP FIRST SCREEN$}
                   $| ${USING bdc_tab $[MODE mode$]$} $]
                   $[EXPORTING p1 FROM a1 p2 FROM a2 ...$]
                   $[IMPORTING p1 TO a1 p2 TO a2 ...$].

Zusätze:

1. ... AND SKIP FIRST SCREEN

2. ... USING bdc_tab $[MODE mode$]

3. ... EXPORTING p1 FROM a1 p2 FROM a2 ...

4. ... IMPORTING p1 TO a1 p2 TO a2 ...

Wirkung

Die Anweisung CALL DIALOG ruft den Dialogbaustein auf, dessen Name in einem flachen zeichenartigen Datenobjekt dialog enthalten ist. Das Datenobjekt dialog muss den Namen in Großbuchstaben enthalten. Es können folgende Angaben für dialog unterschieden werden:

  • Literal oder Konstante
Wenn das Datenobjekt dialog 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 dialog 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 dialog in beiden Fällen erst zur Laufzeit ausgewertet. Falls der in dialog angegebene Dialogbaustein nicht gefunden wird, kommt es zu einer unbehandelbaren Ausnahme.

Beim Aufruf des Dialogbausteins wird das zugeordnete ABAP-Programm in einen neuen internen Modus geladen. Die Sitzung des aufrufenden Programms bleibt erhalten. Im Gegensatz zu CALL TRANSACTION läuft das aufgerufene Programm in der gleichen SAP-LUW wie das aufrufende Programm.

Nach dem Laden des ABAP-Programms wird das Ereignis LOAD-OF-PROGRAM ausgelöst und dann das Dynpro aufgerufen, das als Einstiegs-Dynpro des Dialogbausteins definiert ist. Der Dialogbaustein ist beendet, wenn die zugehörige Dynpro-Folge durch Erreichen des Folge-Dynpros mit der Dynpro-Nummer 0 beendet oder das Programm mit der Anweisung LEAVE PROGRAM verlassen wird.

Hinweise

  • Dialogbausteine sind das einzige Sprachmittel, mit dem ein neuer interner Modus ohne Wechsel der SAP-LUW geöffnet werden kann. Dabei sind folgende Punkte zu beachten.
  • Die Anweisungen COMMIT WORK und ROLLBACK WORK führen im aufgerufenen Programm zu Datenbank-Commits bzw. Datenbank-Rollbacks.

  • Die Anweisung COMMIT WORK startet die innerhalb des Dialogbausteins mit CALL FUNCTION ... IN BACKGROUND UNIT und CALL FUNCTION ... IN BACKGROUND TASK (obsolet) registrierten Background bzw. transaktionalen Remote Function Calls. In einem Dialogbaustein registrierte tRFC oder qRFC, die dort nicht mit COMMIT WORK gestartet werden, werden auch nicht vom COMMIT WORK des Aufrufers ausgeführt.

  • Änderungen an persistenten Objekten der Object Services können während der Ausführung von CALL DIALOG nicht festgeschrieben werden. Änderungen, die im Kompatibilitätsmodus der Object Services vorgenommen werden, können im aufrufenden Programm nachträglich mit COMMIT WORK festgeschrieben werden. Dagegen hat ein Aufruf der Methode END einer im aufgerufenen Programm gestarteten Top-Level-Transaktion des objektorientierten Transaktionsmodus sowohl während als auch nach der Ausführung von CALL DIALOG keine Wirkung. Im objektorientierten Transaktionsmodus muss eine Transaktion vor der Verwendung von CALL DIALOG gestartet und danach abgeschlossen werden.

  • SAP-Sperren werden im aufgerufenen Programm vom Aufrufer übernommen.

  • Der Aufruf von Dialogbausteinen wird durch den Aufruf von Methoden globaler Klassen oder von Funktionsbausteinen ersetzt, wobei Funktionsbausteine die klassischen Dynpros ihrer Funktionsgruppe aufrufen können. Das Öffnen eine internen Sitzung ohne Wechsel der SAP-LUW ist in aller Regel nicht notwendig.

Zusatz 1

... AND SKIP FIRST SCREEN

Wirkung

Dieser Zusatz unterdrückt unter den gleichen Voraussetzungen wie bei der Anweisung CALL TRANSACTION die Anzeige des Bildschirmbildes des Einstiegs-Dynpros. Falls der aufgerufene Dialogbaustein Eingabeparameter für die obligatorischen Eingabefelder des Einstiegs-Dynpros hat, können diese auch über Parameterübergabe statt über SPA/GPA-Parameter gefüllt werden.

Zusatz 2

... USING bdc_tab $[MODE mode$]

Wirkung

Dieser Zusatz steuert das aufgerufene Programm wie bei der Anweisung CALL TRANSACTION durch die Angabe einer Batch-Input-Tabelle bdc_tab des Zeilentyps BDCDATA. Als Steuerung der Verarbeitung kann hier nur MODE verwendet werden.
Falls im aufgerufenen Programm eine Nachricht gesendet wird, steht diese nach dem Aufruf in den Systemfeldern sy-msgid, sy-msgty, sy-msgno, sy-msgv1, ..., sy-msgv4 zur Verfügung.

Zusatz 3

... EXPORTING p1 FROM a1 p2 FROM a2 ...

Zusatz 4

... IMPORTING p1 TO a1 p2 TO a2 ...

Wirkung

Mit diesen Zusätzen können den Formalparametern p1, p2, ... des Dialogbausteins passende Aktualparameter a1, a2, ... zugeordnet werden. Die Formalparameter eines Dialogbausteins sind immer optional. Sie können alle Datentypen bis auf Referenztypen haben.
Beim Laden des aufgerufenen Programms werden die Werte der Aktualparameter an die als Formalparameter definierten globalen Datenobjekte des aufgerufenen Programms zugewiesen. Falls diese Daten mit gleichnamigen Dynpro-Feldern verknüpft sind, werden diese nicht von eventuellen SPA/GPA-Parametern überschrieben.
Das Systemfeld sy-subrc wird bei der Angabe von IMPORTING implizit vom aufgerufenen Dialogbaustein übernommen, unbekannte Formalparameter werden vom System ignoriert.

Hinweis

Außerhalb von Klassen können die Zusätze FROM a1, FROM a2, ... und TO a1, TO a2, ... in den Parameterlisten weggelassen werden, wenn Formal- und Aktualparameter die gleichen Namen haben.

Ausnahmen

Unbehandelbare Ausnahmen

  • Ursache: Der Name eines Parameters ist länger als zulässig.
    Laufzeitfehler: CALL_DIALOG_NAME_TOO_LONG
  • Ursache: Der aufgerufene Dialogbaustein ist nicht bekannt.
    Laufzeitfehler: CALL_DIALOG_NOT_FOUND
  • Ursache: Der aufgerufene Dialogbaustein ist fehlerhaft (fehlerhafter Eintrag in Tabelle TDCT).
    Laufzeitfehler: CALL_DIALOG_WRONG_TDCT_MODE
  • Ursache: Kein weiterer Paging-Bereich für Parameterübergabe verfügbar.
    Laufzeitfehler: CALL_DIALOG_NO_CONTAINER
  • Ursache: Die Anweisung CALL DIALOG ... SCREEN ... PROGRAM ... ist nicht unterstützt.
    Laufzeitfehler: CALL_DIALOG_SCREEN/PROGRAM






ROGBILLS - Synchronize billing plans   BAL Application Log Documentation  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 12632 Date: 20240426 Time: 184520     sap01-206 ( 172 ms )