Zur Prüfung der Benutzereingaben bietet das S10 Framework spezielle "validate" Methoden an, die automatisch auf dem SAP Server nach der Eingabe prozessiert werden. In der Anleitung validate-Methoden ist der Mechanismus detailliert beschrieben. Wir zeigen ihn in diesem Tutorial an folgendem Beispiel:
Folgendes soll geprüft werden:
Zur leichteren Orientierung hier die ABAP Namen der einzelnen Attribute:
Die Definition der Attribute in der ABAP Klassendefinition:
data: awart type pa2001-awart, begda type pa2001-begda, beguz type pa2001-beguz, endda type pa2001-endda, enduz type pa2001-enduz, text type string.
Zur Prüfung der Eingabedaten schreiben wir zwei ABAP-Methoden. Der Methodenname beginnt immer mit "validate_" und ist ansonsten beliebig.
method validate_time. if begda gt endda. s10errormessage( |Endedatum liegt vor Anfangsdatum| ). endif. if begda eq endda and beguz gt enduz. s10errormessage( |Bitte überprüfen Sie die Zeitangaben| ). endif. endmethod. method validate_text. case awart. when '0410' or '0420' or '0430'. if text is initial.
s10setfocus( 'text' ). s10errormessage( |Bitte einen Text erfassen| ). endif. endcase. endmethod.
Nun müssen wir noch den Bezug der Prüfmethoden zu den Eingabedaten herstellen. Das geschieht in der Deklaration der ABAP-Mehoden, in denen wir die zu prüfenden Attribute als "importing" Parameter aufführen:
methods: validate_time importing begda type pa2001-begda beguz type pa2001-beguz optional endda type pa2001-endda enduz type pa2001-enduz optional, validate_text importing awart type pa2001-awart text type string optional.
Neben der beschriebenen automatischen Prüfung der Daten bei der Eingabe können Sie in ABAP durch s10validate( ) sämtliche Validierungsmethoden der Klasse ablaufen lassen. Es ist empfehlenswert, das bei "Prüfen" und "Sichern" zu tun, da damit alle Prüfungen durchgeführt werden, unabhängig davon ob die Werte durch Benutzereingaben erfolgt sind oder im Programm z.B. aus anderen Tabellen gesetzt wurden:
* check data method check.
* execute all validation methods s10validate( ). s10infomessage( |Eingebedaten geprüft| ). endmethod.