Show TOC Anfang des Inhaltsbereichs

Aufruf durch den Benutzer (Transaktionscode)  Dokument im Navigationsbaum lokalisieren

Bei der dialoggesteuerten Ausführung von ABAP-Programmen steht die Steuerung des Programmablaufs über Benutzerdialoge im Vordergrund. Ein typisches dialoggesteuertes Programm wird über einen Transaktionscode gestartet, der mit einem ersten Dynpro verknüpft ist. Das Dynpro zeigt ein Bildschirmbild an, auf dem der Benutzer Informationen eingeben oder anfordern kann. Als Reaktion auf diese Benutzereingaben oder -anforderungen ruft die Dynpro-Ablauflogik entsprechende Aktionen der ABAP-Verarbeitungslogik auf und verzweigt zum nächsten Bild. In der ABAP-Verarbeitungslogik werden beispielsweise eine Datenausgabe oder Änderungen in der Datenbank programmiert.

Beispiel

In einem Reisebüro soll ein Flug gebucht werden. Die entsprechenden Daten werden auf dem Bildschirm eingegeben. Es erfolgt entweder eine Bestätigung der gewünschten Anforderungen, d.h. der Flug kann gebucht werden, und der Kunde fliegt am gewünschten Tag auf dem für ihn reservierten Platz zum Zielort seiner Wahl, oder er bekommt die Information, dass der Flug bereits ausgebucht ist.

Um solche Anforderungen zu erfüllen, werden für ein dialoggesteuertes Programm verschiedene Dinge benötigt:

·        eine bedienerfreundliche Benutzungsoberfläche

·        Format- und Konsistenzprüfungen bei der Eingabe der Daten

·        eine einfache Korrektur von Falscheingaben

·        das Verfügbarmachen von Daten durch Speicherung in der Datenbank.

ABAP stellt Anwendungsentwicklern ein breites Spektrum an Tools und Sprachkonstrukten zur Verfügung, um die genannten Anforderungen in Dialogprogrammen umzusetzen.

Übersicht zu Dialogprogrammen

Wir bezeichnen den Ablauf eines dialoggesteuerten Programms bzw. eines Programms, das über einen Transaktionscode gestartet wird als SAP-Transaktion oder auch kurz als Transaktion, wenn aus dem Zusammenhang klar ist, was gemeint ist. Der Begriff Transaktion wird in der Informationsverarbeitung mehrfach verwendet. Im Zusammenhang mit dem Teilhaberbetrieb (OLTP, Online Transaction Processing), wo mehrere Benutzer gleichzeitig im Dialogbetrieb an einem System arbeiten, steht der Begriff Transaktion für einen Benutzerauftrag. Im Zusammenhang mit Datenbankänderungen steht der Begriff Transaktion für eine Zustandsänderung auf der Datenbank.

Während ausführabre Programme sowohl durch Angabe des Programmnamens als auch über Transaktionscodes gestartet werden können, können Modul-Pools nur über Transaktionscodes und steuernde Dynpros gestartet werden. Dynpros rufen im zugehörigen ABAP-Programm Dialogmodule auf. Modul-Pools dienen hauptsächlich als Container für Dialogmodule. Ausführbare Programme oder Funktionsbausteine können durch die Anweisung CALL SCREEN ein Dynpro aufrufen und dadurch in die dialoggesteuerte Ausführung wechseln. Der Programmtext der aufrufenden ausführbaren Programme oder Funktionsbausteine müssen dann die entsprechenden Dialogmodule enthalten.

Programme, die ganz oder teilweise dialoggesteuert sind können nicht im Hintergrund ausgeführt werden. Deshalb spricht man auch von Dialogprogrammen.

Komponenten eines Dialogprogramms

Ein dialoggesteuertes Programm setzt sich aus folgenden Grundbausteinen zusammen:

Diese Grafik wird im zugehörigen Text erklärt

·        Transaktionscode

Der Transaktionscode startet eine Dynproablaufkette. Ein Transaktionscode wird in der ABAP Workbench im Repository Browser oder über die Transaktion SE93 mit einem ABAP-Programm und einem zugehörigen Einstiegs-Dynpro verknüpft. Alternativ zum Start über über einen Transaktionscode kann die Dynproablaufkette aus jedem ABAP-Programm mit der Anweisung CALL SCREENgestartet werden.

·        Dynpros

Jeder Dialog in einem SAP-System wird von Dynpros gesteuert. Ein Dynpro besteht aus einem Bildschirmbild und dessen Ablauflogik. Dynpros werden mit dem Werkzeug Screen Painter der ABAP-Workbench erstellt. Jedes Dynpro ist mit einem ABAP-Programm verknüpft.

Das Bildschirmbild selbst hat ein Layout, das die Position von Ein-/Ausgabefeldern, Textfeldern und grafischen Bedienelementen wie Auswahlknöpfen und Ankreuzfeldern bestimmt. Die Ablauflogik besteht aus zwei Teilen:

         Der Teil PBO (Process Before Output) legt fest, welche Verarbeitungen vor dem Senden des Bildschirms stattfinden.

         Der Teil PAI (Process After Input) legt fest welche Verarbeitungen nach einer Benutzeraktion auf dem Bildschirm stattfinden.

Alle Dynpros, die innerhalb eines ABAP-Programms aufgerufen werden sollen, müssen zum gleichen Programm gehören. Die Dynpros zu einem Programm sind numeriert. Zu jedem Dynpro ist ein Standardfolgedynpro vermerkt. Damit kann sowohl eine lineare als auch eine zyklische Dynprofolge aufgebaut werden. Aus einer Dynprofolge kann eine andere Dynprofolge aufgerufen werden, wobei nach deren Ende der Rücksprung in die ursprüngliche Folge möglich ist. Das Standardfolgedynpro kann jederzeit in den Dialogmodulen des ABAP-Programms übersteuert werden.

·        GUI-Status

Zu jedem Bildschirmbild gehört ein GUI-Status vom Typ Dialogstatus. Dieser verwaltet Menuleisten, Symbolleisten und Drucktastenleisten, die der direkten Eingabe von Benutzeranweisungen auf dem Bildschirm dienen. Ein GUI-Status ist wie ein Dynpro ein eigenständiges Entwicklungsobjekt eines ABAP-Programms und wird mit dem Werkzeug Menu Painter der ABAP Workbench gepflegt.

·        ABAP-Programm

Jedes Dynpro und jeder GUI-Status sind mit genau einem ABAP-Programm verknüpft. Das zugehörige ABAP-Programm enthält die Dialogmodule, die von der Dynpro-Ablauflogik aufgerufen werden und verarbeitet die Benutzereingaben des GUI-Status. Ein ABAP-Programm mit Dynpros heißt auch Dialogprogramm. Bei einem Modul-Pool ist der zeitlich zuerst aufgerufene Verarbeitungsblock immer ein Dialogmodul. Es können aber auch andere ABAP-Programme, z.B. ausführbare Programme oder vom Funktionsgruppen mit Dynpros verknüpft sein. Dann wird der erste Verarbeitungsblock anders aufgerufen, z.B. über die Laufzeitumgebung oder über den Aufruf einer Prozedur, und die Dynpro-Folge wird durch CALL SCREENgestartet.

Bei den Dialogmodulen werden PBO- und PAI-Module unterschieden. Dialogmodule, die zum Zeitpunkt PBO aufgerufen werden, sollen die Bildschirmmaske kontextabhängig vorbereiten, z.B. durch Setzen von Feldinhalten oder durch Ausblenden nicht benötigter Felder im Bildschirmlayout. Dialogmodule, die zum Zeitpunkt PAI aufgerufen werden, sollen die Eingaben des Benutzers überprüfen und geeignete Dialogschritte bzw. die Verbuchung veranlassen.

Übergabe von Daten zwischen ABAP-Programm und Dynpro

Wie werden im ABAP-Programm bekannte Felder auf dem Bildschirmbild angezeigt? Und wie werden Benutzereingaben in Feldern auf dem Bildschirmbild an das ABAP-Programm übermittelt? Im Gegensatz zur Listenprogrammierung können Felddaten nicht mit der Anweisung WRITE auf dem Bild ausgegeben werden. Das System überträgt die Daten vielmehr, indem es Dynpro-Feldnamen mit ABAP-Feldnamen vergleicht. Sind die beiden Namen gleich, werden die Werte zwischen Dynpro und zu ABAP-Programm übertragen. Die Datenwerte werden unmittelbar vor bzw. nach der Bildanzeige vom Programm in die Dynprofelder kopiert bzw. umgekehrt.

Feldeigenschaften

Für alle Bildschirmfelder eines Dynpros werden im Screen Painter Feldeigenschaften festgelegt. Bei gleicher Namensgebung für ein Feld im ABAP Dictionary und im Dynpro besteht automatisch ein Bezug zwischen den beiden Feldern. Dies führt dazu, dass ein großer Teil der Feldeigenschaften im Dynpro automatisch aus dem ABAP Dictionary übernommen werden kann. Die Feldeigenschaften, sowie Datenelement und Domäne des zugeordneten Dictionary-Feldes bilden die Grundlage für die Standardfunktionen, die das Dynpro im Dialog leistet (automatische Formatprüfungen für Bildschirmfelder, automatische Wertebereichsprüfungen, Online-Hilfe etc.)

Fehlerdialoge

Eine weitere Aufgabe des Dynpro-Prozessors ist die Durchführung von Fehlerdialogen. Die Überprüfung der Eingabedaten wird entweder automatisch über Prüftabellen des ABAP Dictionary oder vom ABAP-Programm selbst durchgeführt. Der Dynpro-Prozessor blendet die Fehlermeldung in das empfangene Bildschirmbild ein und sendet es an den Benutzer zurück. Die Meldung wird gegebenenfalls kontextabhängig ausgegeben, d.h. aktuelle Feldinhalte werden für Platzhalter im Meldungstext eingesetzt. Außerdem werden nur diejenigen Felder eingabebereit gemacht, für die eine Korrektur ihres Inhalts zur Behebung des Fehlers beitragen kann. Siehe auch Nachrichten auf Dynpros.

Datenkonsistenz

Um über komplexe Anwendungen hinweg Daten konsistent zu halten, stellt ABAP Techniken zur Optimierung von Datenbankaktualisierungen bereit, welche unabhängig von der darunterliegenden Datenbank arbeiten und den speziellen Anforderungen der Dialogprogrammierung entsprechen.
Siehe auch Datenkonsistenz.

 

 

Ende des Inhaltsbereichs