Show TOC Anfang des Inhaltsbereichs

Benutzungsschnittstellen  Dokument im Navigationsbaum lokalisieren

 

Jedes Fenster des SAP GUI, das ein Benutzer im SAP-System angezeigt bekommt, gehört zu einem Dynpro (dynamisches Programm) einer ABAP-Anwendung. Dynpros reagieren auf Benutzereingaben auf den GUI-Fenstern, senden Daten zum Bildschirm und empfangen Daten vom Bildschirm. Es gibt drei Möglichkeiten die Fensterein- und -ausgabe in Form von Benutzungsschnittstellen (User Interfaces), deren Behandlung direkt in die Sprache eingebunden ist, 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.

Allgemeine Dynpros

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

Selektionsbilder und Listen-Dynpros

·        Für häufige Anwendungsfälle bietet der NetWeaver AS ABAP zwei spezialisierte Dynpros, nämlich Selektionsbilder und Listen-Dynpros an, deren Bildschirmbilder und Bildschirmablauflogik aus ABAP-Befehlen der Verarbeitungslogik generiert werden. Der Programmierer muss also in diesem Fall nicht mit dem Werkzeug Screen Painter arbeiten.

 

 

Diese Grafik wird im zugehörigen Text erklärt

Fenster des SAP GUI enthalten Menüleisten, Symbolleisten und Drucktastenleisten. Diese drei Objekte dienen der direkten Eingabe von Benutzeranweisungen und werden unter dem Begriff GUI-Status zusammengefasst. Jeder GUI-Status ist ein eigenständiges Entwicklungsobjekt des zugehörigen Anwendungsprogramms und ist somit kein interner Teil eines Dynpros, wodurch er in verschiedenen Dynpros wieder verwendet werden. Für die Definition vom GUI-Status enthält die ABAP Workbench das Werkzeug Menu Painter. Für Dynpros und Listen-Dynpros kann der GUI-Status vom Programmierer frei definiert werden. Bei Selektionsbildern ist der Status fest vordefiniert.

 

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: PBO und PAI. 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 Benutzeraktion auf dem Bildschirm ein.

Jede Bildschirmmaske ist mit genau zwei Verarbeitungsblöcken der Dynpro-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 Sprache zur Programmierung der Dynpro-Ablauflogik enthält nur wenige Sprachelemente. Die Anweisungen sind syntaktisch zwar ähnlich zu ABAP-Anweisungen, dürfen aber nicht mit ABAP verwechselt werden. Die wichtigsten Dynpro-Sprachelemente sind MODULE, FIELD, CHAIN und LOOP. Sie dienen ausschließlich der Anbindung der Verarbeitungslogik an die Dynpro-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 so genannten Dynpro-Feldern im Shared Memory verknüpft. Dynpro-Felder können an das ABAP Dictionary angebunden werden und erhalten dadurch automatische Feld- und Wertehilfefunktionen, sowie Konsistenzprüfungen.

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

Jedes Dynpro ruft im zugehörigen ABAP-Programm so genannte 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 so genannte 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 so genannter Varianten verwenden.

Selektionsbilder werden aus ABAP-Programmen über die Anweisung CALL SELECTION-SCREEN aufgerufen. Bei ausführbaren Programmen ruft die ABAP-Laufzeitumgebung das im Deklarationsteil definierte Selektionsbild automatisch auf. Selektionsbilder lösen Ereignisse aus und können damit in ABAP-Programmen so genannte 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-Dynpros

Listen sind Bildschirmbilder zur formatierten und strukturierten Darstellung von Daten. Sie 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 Dynpro-Darstellung. Eingabefelder auf Bildschirmlisten sind nicht mit Dynpro-Feldern gleichzusetzen denn der Datentransport zwischen Listen-Dynpro und ABAP-Programm geht anders vonstatten als bei Dynpro-Feldern. 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. Es können nur Daten, die intern als Liste abgespeichert sind, an das Spool-System z.B. zwecks Druckausgabe gesendet werden.

In ABAP-Programmen kann mit der Anweisung LEAVE TO LIST-PROCESSING das Listen-Dynpro als Folgebild definiert und eine beschriebene Liste damit zur Anzeige gebracht werden. Bei ausführbaren Programmen 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 eine Grundliste bis zu 20 Detaillisten erzeugt werden.  Benutzeraktionen auf Listen lösen Ereignisse aus und können damit im ABAP-Programm so genannte 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