# Dynpro

Dynpro ist die Abkürzung für ein dynamisches Programm in SAP ERP.

## Übersicht

Dynpros sind eine der Haupt-Technologien in der Interaktion zwischen Benutzer und SAP-ERP-System. Sie ist am leichtesten vor dem Hintergrund der evolutionären Entwicklung der SAP-ERP-Benutzungsoberfläche zu verstehen. Dynpros bestehen aus zwei Teilkomponenten: der Maskendefinition und der Ablauflogik. Dynpros werden im R/3-System zur Laufzeit von einer speziellen Softwarekomponente, dem Dynpro-Prozessor, interpretiert.
Im englischen Sprachgebrauch werden Dynpros häufig als screens bezeichnet.

## Technik

Die Maskendefinition beschreibt die Positionierung und Formatierung der Eingabeelemente (Textfelder, Checkboxen, Radiobuttons und Drucktasten) und Designelemente (Texte und Rahmen). Weiterhin kann ein Dynpro sogenannte Containerelemente enthalten. Mit Hilfe einer Subscreen Area ist es möglich, ein Dynpro in ein anderes Dynpro einzubetten. Ein anderes Containerelement erlaubt die Ansteuerung aktiver Komponenten auf dem Frontend-Rechner (ActiveX-Controls bzw. Java Beans). Weitere Containerelemente sind der Tabstrip, eine Art Karteikasten mit mehreren Registern, und das Tablecontrol, mit dem Tabellen dargestellt werden können.
Neben dem reinen Dialoglayout enthält das Dynpro eine Ablauflogik. Die Ablauflogik steuert den Zeitpunkt, zu dem die Eingabe in die Felder in das entsprechende ABAP-Feld übertragen wird und wann die Ablauflogik eines Subscreens abgearbeitet wird. Über Module wird aus der Ablauflogik in das ABAP-Programm abgesprungen, wo die Daten verarbeitet werden. Der Dynproprozessor arbeitet einzelne Abschnitte der Ablauflogik zu bestimmten Zeitpunkten ab. Die Ablauflogik ist also eher zeitpunktgesteuert als rein sequentiell strukturiert, auch wenn Module, die dem gleichen Zeitpunkt zugeordnet sind, natürlich in der aufgeführten Reihenfolge ausgeführt werden. Es handelt sich nicht um eine ereignisbasierte Steuerung, wie sie in modernen Programmierumgebungen zu finden ist, sondern um ein recht starres Konstrukt, das seine Wurzeln in den Zeiten der textbasierten Großrechneranwendungen hat. Der Dynpro-Prozessor bereitet das Dynpro auf und übergibt es zur Anzeige an den Client. Anschließend ruht die Verarbeitung auf dem Applikationsserver, bis der Benutzer eine Funktion auslöst. Durch diese Aktion wird der Inhalt des Dynpros zurück an den Applikationsserver übermittelt und vom Dynpro-Prozessor weiterverarbeitet.
Die wichtigsten Zeitpunkte der Dialogverarbeitung sind PBO (process before output) und PAI (process after input); weiterhin existieren spezielle Zeitpunkte zur Bereitstellung von Hilfetexten und Wertehilfen sowie zur Reaktion auf bestimmte Abbruchkommandos. Der Zeitpunkt PBO wird vor der Ausgabe des Dynpros ausgelöst und wird in der Regel zur Versorgung der Dynpro-Felder verwendet. Im PAI, also unmittelbar nach der Verarbeitung der Eingabe, werden die eingegebenen Daten geprüft und verarbeitet; auch die Reaktion auf die vom Benutzer ausgelösten Kommandos findet hier statt.
Die Felder auf einem Dynpro sind über Namensgleichheit mit den zugehörigen Feldern im zugehörigen ABAP-Programm verknüpft. Die Kommunikation mit dem ABAP-Programm findet über spezielle ABAP-Prozeduren, sogenannte Module statt. Problematisch ist dabei, dass die Verknüpfung nur mit globalen Variablen des ABAP Programms möglich ist.
Außerdem ist der ABAP-Befehl 'MESSAGE' eng mit der Dynproverarbeitung verknüpft.

## Nachfolgetechnologien

SAP hat in den letzten Jahren begonnen, die auf dem SAP GUI basierende Technologie des Dynpros durch webgestützte Technologien zu ergänzen:
* Business Server Pages (BSP), die einen MVC Ansatz für die webbasierte Anzeige von Informationen bieten.
* Web Dynpro, im Zuge der NetWeaver-Strategie eingeführte entweder auf ABAP oder auf Java basierende Technologie. Die Verbindung zu SAP-Systemen wird durch RFC-Modelle hergestellt.