Anfang des InhaltsbereichsMögliche Bildschirmbilder Dokument im Navigationsbaum lokalisieren

Jedes Bildschirmbild, das ein Benutzer im R/3-System angezeigt bekommt, gehört zu einem Dynpro eines Anwendungsprogramms. Dynpros reagieren auf Benutzereingaben auf den Bildschirmen, senden Daten zum Bildschirm und empfangen Daten vom Bildschirm. Es gibt drei Möglichkeiten die Bildschirmein- und -ausgabe zu organisieren. Diese unterscheiden sich in der Art, wie sie programmiert werden und in der Art und Weise welche Benutzerinteraktionen typischerweise auf ihnen ausgeführt werden.

Dynpros

Im allgemeinsten Fall erstellt der Anwendungsprogrammierer die Dynpros seiner Programme vollständig selbst, das heißt er programmiert alle Details der Ablauflogik und verknüpft sie mit selbstdefinierten Bildschirmmasken. Die Erstellung beider Anteile findet ausschließlich mit dem Werkzeug Screen Painter der ABAP Workbench statt.

Selektionsbilder und Listen

Für häufige Anwendungsfälle bietet das R/3 System zwei spezialisierte Dynpros, nämlich Selektionsbilder und Listen an. Die Bildschirme und die Bildschirmablauflogik dieser Dynpros werden aus ABAP-Befehlen der Verarbeitungslogik generiert. Der Programmierer muß in diesem Fall nicht mit dem Werkzeug Screen Painter arbeiten, sondern er definiert den gesamten Interaktionsteil dieser Bildschirme in der Verarbeitungslogik.

Bildschirme im R/3-System enthalten Menuleisten, Symbolleisten und Drucktastenleisten. Diese drei Objekte, dienen der direkten Eingabe von Benutzeranweisungen auf Bildschirmen und werden unter dem Begriff Status zusammengefaßt. Jeder Status ist ein Entwicklungsobjekt des zugehörigen Anwendungsprogramms und bildet einen eigenständigen Teil der Bildschirmbilder. Ein Status ist somit kein interner Teil eines Dynpros und kann in verschiedenen Dynpros wiederverwendet werden. Für die Definition von Status enthält die ABAP Workbench das Werkzeug Menu Painter. Für Dynpros und Listen kann der Status vom Programmierer frei definiert werden. Bei Selektionsbildern ist der Status fest vordefiniert.

Im folgenden gehen wir etwas näher auf die drei Bildschirmarten ein.

Dynpros

Jedes Dynpro enthält eine frei programmierbare Bildschirmmaske zur Datenein- und -ausgabe. Bei der Darstellung der Bildschirmmaske durch den SAP GUI werden zwei Ereignisse ausgelöst: Das Ereignis PBO (Process Before Output) tritt vor der Darstellung der Bildschirmmaske auf dem Bildschirm auf. Das Ereignis PAI (Process After Input) tritt durch eine Benutzeraktionen auf dem Bildschirm ein.

Jede Bildschirmmaske ist mit genau zwei Verarbeitungsblöcken der Ablauflogik verknüpft, die auf diese Ereignisse reagieren, nämlich der PBO-Block und der PAI-Block. Die Zusammenfassung des PAI-Blocks eines Dynpros mit dem PBO-Block des darauf folgenden Dynpros bildet einen Dialogschritt des Anwendungsprogramms.

Die Dynprosprache zur Programmierung der Ablauflogik ist eine spezielle Teilmenge von ABAP und enthält nur wenige Sprachelemente. Die Anweisungen sind syntaktisch zwar ähnlich zu den übrigen ABAP-Anweisungen, es dürfen aber keine Dynproanweisungen in ABAP-Programmen verwendet werden und umgekehrt. Die wichtigsten Dynprosprachelemente sind MODULE, FIELD, CHAIN, und LOOP. Sie dienen ausschließlich der Anbindung der Verarbeitungslogik an die Ablauflogik, d.h. dem Aufruf von Modulen in der Verarbeitungslogik und der Steuerung der Datenübergabe z.B. in Abhängigkeit von Fehlerüberprüfungen.

Die Bildschirmmasken von Dynpros enthalten alle üblichen Elemente grafischer Oberflächen (Ein- und Ausgabefelder, Drucktasten, Auswahlknöpfe etc.). Die folgende Abbildung zeigt ein Beispiel für eine Bildschirmmaske eines Dynpros:

Diese Grafik wird im zugehörigen Text erklärt

Alle aktiven Elemente einer Bildschirmmaske haben Namen und sind mit sogenannten Dynprofeldern im Shared Memory verknüpft. Dynprofelder können an das ABAP-Dictionary angebunden werden und erhalten dadurch automatische Feld- und Wertehilfefunktionen, sowie Konsistenzprüfungen.

Benutzeraktionen ändern die Feldinhalte der entsprechenden Dynprofelder. Der Wertetransport zwischen Dynpros und Verarbeitungslogik erfolgt dadurch, daß beim PAI-Ereignis die Inhalte der Dynprofelder an gleichnamige Variablen im ABAP-Programm übergeben werden.

Jedes Dynpro ruft im zugehörigen ABAP-Programm sogenannte Dialogmodule auf, welche die Inhalte der Bildschirmmasken vorbereiten (PBO) und die Benutzereingaben verarbeiten (PAI). Es gibt zwar ABAP-Anweisungen zum Ändern von Bildschirmeigenschaften, wie z.B. das Ein- und Ausblenden von Bildschirmelementen, aber keine ABAP-Anweisungen für deren Definition.

Dynpros dienen dem Dialog zwischen Benutzer und Anwendungsprogrammen. Typischerweise werden Dynpros in stark dialogorientierten Programmen eingesetzt und dienen der Ausführung einer Anwendung, die aus der Bearbeitung einer Folge von Bildschirmen besteht. Sie kommen insbesondere immer dann zum Tragen, wenn die Möglichkeiten der spezialisierten Dynpros, nämlich des Selektionsbilds oder der Liste, nicht ausreichen.

Selektionsbilder

Selektionsbilder sind spezialisierte Dynpros zur Werteingabe in ABAP-Programmen. Sie werden allerdings nicht mit dem Werkzeug Screen Painter sondern ausschließlich über ABAP-Befehle in der Verarbeitungslogik definiert. Das Selektionsbild wird entsprechend dieser Befehle generiert. Die Bildschirmablauflogik bleibt dabei für den Anwendungsprogrammierer verborgen.

Die Definition von Selektionsbildern erfolgt im Deklarationsteil von ABAP-Programmen über spezielle Deklarationsanweisungen wie PARAMETERS, SELECT-OPTIONS und SELECTION-SCREEN. Diese Anweisungen deklarieren und formatieren die Eingabefelder eines Selektionsbilds. Die folgende Abbildung zeigt ein Beispiel für ein Selektionsbild:

Diese Grafik wird im zugehörigen Text erklärt

Die wichtigsten Elemente von Selektionsbildern sind Eingabefelder für Einzelwerte und für sogenannte Selektionstabellen. Selektionstabellen dienen dazu, komplexere Benutzer-Abgrenzungen aufzunehmen. Bei Verwendung von Selektionstabellen in ABAP übernimmt das System vollständig deren Verarbeitung. Wie bei jedem Dynpro stehen für Eingabefelder, die einen Bezug zum ABAP-Dictionary haben, auch auf Selektionsbildern automatische Feld- und Wertehilfefunktionen zur Verfügung. Der Benutzer kann auf Selektionsbildern vorgefertigte Sätze von Eingabewerten in der Form sognannter Varianten verwenden.

Selektionsbilder werden aus ABAP-Programmen über die Anweisung CALL SELECTION-SCREEN aufgerufen. Bei ausführbaren Programmen (Typ 1) ruft die ABAP-Laufzeitumgebung das im Deklarationsteil definierte Selektionsbild automatisch auf. Selektionsbilder lösen Ereignisse aus und können damit in ABAP-Programmen sogenannte Ereignisblöcke aufrufen.

Da auf Selektionsbildern hauptsächlich Eingabefelder definiert werden, ist der Dialog von Selektionsbildern eingabebezogener als der von frei definierten Dynpros. Auf Dynpros sind Ein- und Ausgabe gleichberechtigt. Selektionsbilder können deshalb immer dann sinnvoll eingesetzt werden, wenn Benutzereingaben für den weiteren Programmverlauf wesentlich sind. Beispielsweise werden Selektionsbilder vor Datenbankzugriffen eingesetzt, um die einzulesende Datenmenge einzuschränken.

Listen

Listen sind Bildschirme zur formatierten und strukturierten Darstellung von Daten. Listen werden ausschließlich über ABAP-Befehle definiert, gestaltet und gefüllt. Das System stellt eine in ABAP definierte Liste auf einem speziellen Listen-Dynpro dar. Wie bei Selektionsbildern bleibt dabei die Bildschirmablauflogik für den Anwendungsprogrammierer verborgen.

Die wichtigste Aufgabe von Listen ist die Datenausgabe. Sie erlauben aber auch Benutzerinteraktionen. Sie reagieren auf Mausklick und können Eingabefelder enthalten. Die Listendarstellung erfolgt aber mit einer völlig anderen Technik als die Dynprodarstellung. Eingabefelder auf Listen sind nicht mit Dynprofeldern gleichzusetzen denn der Datentransport zwischen Listen und ABAP-Programm geht anders vonstatten als bei Dynprofeldern. Wenn Eingabefelder auf Listen mit dem ABAP-Dictionary verknüpft sind stehen auch bei ihnen automatische Feld- und Wertehilfefunktionen zur Verfügung. Die folgende Abbildung zeigt ein Beispiel für eine Liste:

Diese Grafik wird im zugehörigen Text erklärt

Die Definition von Listen erfolgt über einen speziellen Satz von Anweisungen (Listenanweisungen WRITE, SKIP, ULINE, NEW-PAGE etc.) in den Verarbeitungsblöcken von ABAP-Programmen. Bei der Ausführung dieser Anweisungen wird systemintern eine Liste beschrieben. Die Anzeige von Listen auf Bildschirmen und die Behandlung von Benutzeraktionen auf Listen erledigt ein systeminternes Programm, welches wir als Listenprozessor bezeichnen. Im R/3-System können nur Daten, die intern als Liste abgespeichert sind an das Spoolsystem z.B. zwecks Druckausgabe gesendet werden.

In ABAP-Programmen kann mit der Anweisung LEAVE TO LIST-PROCESSING das Listendynpro als Folgebild definiert und eine beschriebene Liste damit zur Anzeige gebracht werden. Bei ausführbaren Programmen vom Typ 1 ruft die ABAP-Laufzeitumgebung die im Programm definierte Liste automatisch auf. Ein Programm kann einen Stapel von bis zu 21 Listen verwalten. Beispielsweise können über einer Grundliste bis zu 20 Detaillisten erzeugt werden. Benutzeraktionen auf Listen lösen Ereignisse aus und können damit im ABAP-Programm sogenannte Ereignisblöcke aufrufen.

Listen sind hauptsächlich ausgabeorientiert. Benutzeraktionen auf Listen dienen meistens der Übernahme von Listeninhalten in die weitere Programmverarbeitung und nicht der direkten Eingabe von Werten. Der Einsatz von Listen ist deshalb immer dann sinnvoll, wenn mit Ausgabedaten gearbeitet wird, wenn Daten gedruckt werden sollen und wenn Benutzeraktionen sich auf Ausgabedaten beziehen.

Ende des Inhaltsbereichs