Dynpros (dynamische Programme) bilden Instanzen, welche durch den Aufruf von Dialogmodulen die Ausführung von ABAP-Programmen steuern. Dynpros bilden Dynpro-Folgen, wobei das jeweilige Folge-Dynpro eines Dynpros statisch oder dynamisch festgelegt werden kann. Die einfachste Dynpro-Folge besteht aus einem Dynpro. Der Aufruf eines Dynpros konstituiert die Dynpro-Folge und kann auf verschiedene Arten stattfinden.
In jedem bildschirmtragenden Programm (ausführbares Programm, Modul-Pool oder Funktionsgruppe) können mit der Anweisung
CALL SCREEN dynnr.
ein Dynpro des gleichen Programms und dessen Folge-Dynpros aufgerufen werden. Die Dynpros rufen die Dialogmodule des aufrufenden Programms auf.
Nach Beendigung der Dynpro-Folge wird hinter die Aufrufstelle zurückgekehrt.
Die speziellen Einzel-Dynpros Selektionsbilder und Listen werden ausschließlich intern aufgerufen. Subscreen-Dynpros sollten ebenfalls nur intern aufgerufen werden.
Eine Transaktion, bzw. ein Transaktionscode, kann mit einem Dynpro eines beliebigen bildschirmtragenden Programms verknüpft werden. Üblicherweise verwendet man dafür Modul-Pools.
In jedem ABAP-Programm kann mit den Anweisungen
CALL TRANSACTION tcod ...
oder
LEAVE TO TRANSACTION tcod ...
eine Transaktion und damit die durch das Einstiegs-Dynpro eingeleitete Dynpro-Folge aufgerufen werden. Das Programm der Transaktion wird in einem neuen internen Modus geladen und öffnet eine eigene SAP-LUW. Die Dynpros der Dynpro-Folge rufen die Dialogmodule dieses Programms auf.
Nach Beendigung der Dynpro-Folge wird bei CALL TRANSACTION hinter die Aufrufstelle zurückgekehrt. Bei LEAVE TO TRANSACTION wird an die Stelle zurückgekehrt, wo der Aufrufer gestartet wurde.
Ein Dialogbaustein kann mit einem Dynpro eines beliebigen bildschirmtragenden Programms verknüpft werden. Üblicherweise verwendet man dafür Modul-Pools.
In jedem ABAP-Programm kann mit der Anweisung
CALL DIALOG diag ...
ein Dialogbaustein und damit die durch das Einstiegs-Dynpro eingeleitete Dynpro-Folge aufgerufen werden. Das Programm des Dialogbausteins wird in einem neuen internen Modus geladen, öffnet aber keine eigene SAP-LUW. Die Dynpros der Dynpro-Folge rufen die Dialogmodule dieses Programms auf.
Nach Beendigung der Dynpro-Folge wird hinter die Aufrufstelle zurückgekehrt.
Dialogbausteine sollten nicht mehr verwendet werden. Zur Kapselung von Dynpro-Folgen können stattdessen Funktionsgruppen mit entsprechend programmierten Funktionsbausteinen eingesetzt werden.
Eine Dynpro-Folge wird ausschließlich beim Erreichen des Folge-Dynpros mit der Dynpro-Nummer 0 verlassen.
Einzelne Dynpros einer Folge können programmgesteuert mit den Anweisungen
LEAVE SCREEN.
oder
LEAVE TO SCREEN dynnr.
verlassen werden. Diese Anweisungen beenden das aktuelle Dynpro und rufen das jeweilige Folge-Dynpro. Falls das Folgeynpro 0 ist, wird die gesamte Dynpro-Folge beendet.
Für Dynpros gibt es folgende Spezialfälle:
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.
Jedem Dynpro einer Dynpro-Folge 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äger-Dynpro für Listen enthält, dessen Bildschirmbild das aktuelle Bildschirmbild ersetzt. Auf dem Träger-Dynpro 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 wird das Listensystem automatisch nach dem letzten Reporting-Ereignis aufgerufen.
In der Dynpro-Ablauflogik 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 progverwendet 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.