Ansicht
Dokumentation
ABAPCALL_DIALOG - CALL DIALOG
BAL Application Log Documentation BAL Application Log DocumentationDiese Dokumentation steht unter dem Copyright der SAP AG.
CALL DIALOG
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.
- Mit CALL FUNCTION IN UPDATE TASK und PERFORM ON ${COMMIT$|ROLLBACK$} innerhalb des Dialogbausteins registrierte Prozeduren werden erst bei den entsprechenden Anweisungen COMMIT WORK und ROLLBACK WORK im aufrufenden Programm 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 )