Show TOC Anfang des Inhaltsbereichs

Automatische Eingabeüberprüfungen  Dokument im Navigationsbaum lokalisieren

Beim Ereignis PAI werden vom Dynpro eine Reihe automatischer Eingabeüberprüfungen durchgeführt. Die automatischen Eingabeüberprüfungen finden statt bevor ein Datentransport an das ABAP-Programm erfolgt und bevor die Dynproablauflogik prozessiert wird. Vor den  automatischen Eingabeüberprüfungen kann ein einziges Dialogmodul durch einen unbedingten Modulaufruf und mit einem speziellen Funktionstyp aufgerufen werden. Dieses Dialogmodul dient in der Regel dazu, das Dynpro unter Umgehung der Überprüfungen zu verlassen.

Findet die automatische Eingabeüberprüfung einen Fehler, wird dies in der Statuszeile des Bildschirms angezeigt und die entsprechenden Felder bleiben eingabebereit. Der Benutzer muss seine Eingaben korrigieren und wieder PAI auslösen. Die eigentliche PAI-Verarbeitung wird erst gestartet, wenn die automatische Eingabeüberprüfung keine Fehler mehr findet.

Die automatischen Eingabeüberprüfungen werden in folgender Reihenfolge durchgeführt:

Musseingaben

Der Benutzer muss für jedes im Screen Painter als Mussfeld definiertes Eingabefeld einen Wert eingeben, bevor die PAI-Verarbeitung aufgenommen wird.

Eingabeformat

Die in ein Eingabefeld eingegebenen Werte müssen dem Datenformat des zugehörigen Dynprofelds entsprechen. Beispielsweise ist das Format eines Datumsfelds vom Typ DATS eine achtstellige Zeichenkette mit dem Format YYYYMMDD. Alle Zeichen müssen Zahlen und die Zeichen MM und DD  kleiner oder gleich 12 bzw. 31 sein. Für den jeweiligen Monat wird auch die Gültigkeit der Angabe des Tags überprüft.

Überprüfungen im ABAP Dictionary

Wenn ein Eingabefeld im Screen Painter durch Übernehmen aus dem ABAP Dictionary definiert wurde, überprüft das Dynpro, ob

·        der eingegebene Wert einer eventuellen Fremdschlüsselbeziehung zu einer anderen Datenbanktabelle genügt. D.h. es wird auf die Prüftabelle zugegriffen und überprüft, ob der Eingabewert als Fremdschlüssel in der Prüftabelle enthalten ist. Diese Überprüfung findet aber nur statt, falls im Screen Painter für das Eingabefeld das Attribut Fremdschlüssel gesetzt ist. Diese Eingabeüberprüfung ist nicht unbedingt identisch zur Eingabehilfe. Es ist Sache des Programmieres, dafür zu sorgen, dass die Eingabehilfe eine Teilmenge des Inhalts der Prüftabelle darstellt.

·        der eingegebene Wert als Festwert der Domäne des Felds vorhanden ist. D.h. es wird die Definition der Domäne des Felds im ABAP Dictionary überprüft. Die Festwerte der Domäne können auch der Eingabehilfe dienen. Die Wertetabelle einer Domäne wird dagegen nicht überprüft. Sie dient rein als Vorschlagswert für die Prüftabellen der Felder, welche sich auf die Domäne beziehen.

Beispiel

Automatische Eingabeüberprüfungen.

PROGRAM demo_dynpro_automatic_checks.

DATA: ok_code TYPE sy-ucomm,
      date TYPE d.

TABLES demo_conn.

CALL SCREEN 100.

MODULE init_screen_100 OUTPUT.
  SET PF-STATUS 'STATUS_100'.
ENDMODULE.

MODULE cancel INPUT.
  LEAVE PROGRAM.
ENDMODULE.

MODULE pai INPUT.
  MESSAGE i888(sabapdocu) WITH text-001.
ENDMODULE.

Die statische Folge-Dynpro-Nummer von Dynpro 100 ist 100 und sein Layout ist wie folgt:

Diese Grafik wird im zugehörigen Text erklärt

Dem Eingabefeld Datum ist das aus dem Programm übernommene Datumsfeld datezugeordnet. Die übrigen Eingabefelder sind die aus dem ABAP Dictionary übernommenen Komponenten CARRID, CONNID und MARK der Struktur DEMO_CONN. Alle Eingabefelder sind Mussfelder. Der Funktionscode der Drucktaste ist EXECUTE.

Im GUI-Status STATUS_100 ist das Symbol Diese Grafik wird im zugehörigen Text erklärt (F12) durch den Funktionscode CANCEL mit dem Funktionstyp E aktiviert. Weiterhin ist der Funktionstaste F8 der Funktionscode EXECUTE zugeordnet.

Die Bildschirmablauflogik ist:

PROCESS BEFORE OUTPUT.
  MODULE init_screen_100.

PROCESS AFTER INPUT.
  MODULE cancel AT EXIT-COMMAND.
  
MODULE pai.

Der Benutzer muss erst alle Eingabefelder fehlerfrei füllen, bevor das Modul PAI aufgerufen werden kann:

·         alle Eingabefelder müssen mit Werten versehen werden.

·         das Format der Datumseingabe muss stimmen.

·         die Fluggesellschaft muss in der Prüftabelle SCARR vorhanden sein.

·         die Flugnummer muss passend zur Fluggesellschaft in der Prüftabelle SPFLI vorhanden sein.

·         die Markierung MARK muss einer der Festwerte der Domäne S_FLAG sein.

Der Benutzer kann das Dynpro über Diese Grafik wird im zugehörigen Text erklärt (F12) verlassen ohne alle Werte richtig einzugeben, da der Modulaufruf mit AT EXIT-COMMAND entsprechend programmiert wurde.

 

 

Ende des Inhaltsbereichs