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.

Der Zusatz optional wird durch das S10 Framework so interpretiert, dass die Prüfung auch dann abläuft, wenn der Attributwert initial ist.

Damit sind wir fertig und können die Prüfungen testen, zum Beispiel:

 

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.

Das Abspeichern der Daten im SAP-System erfolgt meist durch Aufruf von BAPIs oder "Call Transaction Using...", wobei sämtliche SAP-Prüfungen durchgeführt werden. Es ist für den Benutzer aber angenehm, wenn die Prüfungen möglichst früh bei der Eingabe der Daten erfolgen und der Bezug der Fehlermeldung zu den Eingabedaten sichtbar ist, und nicht erst ganz am Ende bei "Sichern". Hierfür sind die "validate" Methoden die passende Technik.