Dynpros (dynamische Programme) bilden Instanzen, welche durch den Aufruf von Dialogmodulen die Ausführung von ABAP-Programmen steuern. Dynpros bilden Dynprofolgen, wobei das jeweilige Folgedynpro eines Dynpros statisch oder dynamisch festgelegt werden kann. Die einfachste Dynprofolge besteht aus einem Dynpro. Der Aufruf eines Dynpros konstituiert die Dynprofolge und kann auf verschiedene Arten stattfinden.
Interner Aufruf aus dem eigenen ABAP-Programm
In jedem bildschirmtragenden Programm (Typ 1, M oder F) kann mit der Anweisung
CALL SCREEN <dynnr>.
ein Dynpro des gleichen Programms und dessen Folgedynpros aufgerufen werden. Die Dynpros rufen die Dialogmodule des aufrufenden Programms auf.
Nach Beendigung der Dynprofolge wird hinter die Aufrufstelle zurückgekehrt.
Aufruf als Transaktion
Eine Transaktion, bzw. ein Transaktionscode, kann mit einem Dynpro eines beliebigen bildschirmtragenden Programms verknüpft werden. Üblicherweise verwendet man Modulpools vom Typ M.
In jedem ABAP-Programm kann mit den Anweisungen
CALL TRANSACTION <tcod> ...
oder
LEAVE TO TRANSACTION <tcod> ...
eine Transaktion die durch das Einstiegs-Dynpro eingeleitete Dynprofolge aufgerufen werden. Das Programm der Transaktion Dialogbausteins wird in einem neuen internen Modus geladen und öffnet eine eigene SAP-LUW. Die Dynpros der Dynprofolge rufen die Dialogmodule dieses Programms auf.
Nach Beendigung der Dynprofolge wird bei CALL TRANSACTION hinter die Aufrufstelle zurückgekehrt. Bei LEAVE TO TRANSACTION wird an die Stelle zurückgekehrt, wo der Aufrufer gestartet wurde.
Aufruf als Dialogbaustein
Ein Dialogbaustein kann mit einem Dynpro eines beliebigen bildschirmtragenden Programms verknüpft werden. Üblicherweise verwendet man Modulpools vom Typ M.
In jedem ABAP-Programm kann mit der Anweisung
CALL DIALOG <diag> ...
ein Dialogbaustein und damit die durch das Einstiegs-Dynpro eingeleitete Dynprofolge aufgerufen werden. Das Programm des Dialogbausteins wird in einem neuen internen Modus geladen, öffnet aber keine eigene SAP-LUW. Die Dynpros der Dynprofolge rufen die Dialogmodule dieses Programms auf.
Nach Beendigung der Dynprofolge wird hinter die Aufrufstelle zurückgekehrt.
Dialogbausteine sollten nicht mehr verwendet werden. Zur Kapselung von Dynprofolgen können stattdessen Funktionsgruppen mit entsprechend programmierten Funktionsbausteinen eingesetzt werden.
Aufgerufene Dynprofolgen beenden
Eine Dynprofolge wird ausschließlich beim Erreichen des Folgedynpros mit der Dynpronummer 0 verlassen.
Einzelne Dynpros einer Folge können programmgesetuert mit den Anweisungen
LEAVE SCREEN.
oder
LEAVE TO SCREEN <dynnr>.
verlassen werden. Diese Anweisungen beenden das aktuelle Dynpro und rufen das jeweilige Folgedynpro. Falls das Folgeynpro 0 ist, wird die gesamte Dynprofolge beendet.
Spezielle Einzeldynpros
Für Dynpros gibt es folgende Spezialfälle:
Selektionsbilder
Ein Selektionsbild ist ein spezielles aus ABAP-Anweisungen generiertes Dynpro. Ein Selektionsbild kann nur durch die Anweisung
CALL SELECTION-SCREEN <dynnr> ...
aufgerufen werden. Die Selektionsbildverarbeitung, d.h. die Reaktion auf Benutzeraktionen (Selektionsbildereignisse) findet im aufrufenden Programm statt.
Listen
Jedem Dynpro einer Dynprofolge ist ein zwanzigstufiges Listensystem zugeordnet. Das Listensystem kann durch die Anweisung
LEAVE TO LIST-PROCESSING [AND RETURN TO SCREEN <dynnr>].
aufgerufen werden. Diese Anweisung ruft ein Systemprogramm, das ein Trägerdynpro für Listen enthält, dessen Bildschirmbild das aktuelle Bildschirmbild ersetzt. Auf dem Trägerdynpro können eine Grund- und neunzehn Verzweigungslisten sequentiell angezeigt werden. Die Listenverarbeitung, d.h. die Reaktion auf Benutzeraktionen (Listenereignisse) findet im aufrufenden Programm statt.
Zum programmgesteuerten Verlassen des Listensystems kann die Anweisung
LEAVE LIST-PROCESSING.
verwendet werden.
Bei ausführbaren Programmen vom Typ 1 wird das Listensystem automatisch nach dem letzten Reporting-Ereignis aufgerufen.
Subscreens
In der Dynproablauflogik eines Dynpros können zum Zeitpunkt PBO Subscreen-Dynpros aufgerufen werden.
CALL SUBSCREEN <area> INCLUDING [<prog>] <dynnr>.
Das Bildschirmbild eines aufgerufenen Subscreen-Dynpros füllt den Subscreen-Bereich <area>des aufrufenden Dynpros.
Ohne die Angabe <prog> wird ein Subscreen-Dynpro des aktuellen ABAP-Programms verwendet. Mit der Angabe von <prog> wird ein Subscreen-Dynpro des Programms <prog> verwendet und dieses ABAP-Programm wie bei einem externen Unterprogrammaufruf behandelt. Es wird also zur Programmgruppe des Aufrufers oder, falls es eine Funktionsgruppe ist, als eigene Programmgruppe in den internen Modus des aktuellen ABAP-Programms geladen.