!--a11y-->
Verwendung
Für die Bestellseite benötigen Sie nur den Eventhandler OnInputProcessing.

Grundsätzliches zu Eventhandlern entnehmen Sie dem Anschnitt
Eventhandler der Dokumentation zum
SAP Web Application Server.
Vorgehensweise
Wenn der Benutzer den Button Submit Order klickt, so soll er bei erfolgreicher Bestellung auf die Seite
corder.htm (vgl. Änderung der Auftragsbestätigungsseite) verzweigen, bei einem falschen Kennwort oder einem nicht registrierten Kunden soll auf der Bestellseite geblieben werden, so dass er seine Eingaben erneut machen kann.Der Eventhandler OnInputProcessing enthält folgenden Code.
|
DATA wa TYPE bscustomer. SELECT SINGLE * FROM bscustomer INTO wa
IF sy-subrc = 0. * user already signed-in IF pwd = wa-usrpwd. * password correct s_rc = 1. ELSE. * password incorrect page->messages->add_message( condition = 'passwordincorrect' otr_alias = 'SBOOKSHOP/PASSWORDINCORRECT' severity = page->messages->CO_SEVERITY_ERROR ).
ENDIF. ELSE. * user unknown page->messages->add_message( condition = 'notregistered' otr_alias = 'sbookshop/notregistered' severity = page->messages->CO_SEVERITY_WARNING ). ENDIF.
if event_id = 'doorder'.
if s_rc = 1. navigation->goto_page( 'corder.htm' ). endif.
endif. |
Zunächst wird in der Kundentabelle
BSCUSTOMER gesucht, ob der Kunde schon registriert ist. Ist der Kunde bekannt, wurde ein Eintrag in der Tabelle gefunden, sy-subrc steht auf 0. Nun wird geprüft, ob der Kunde das Kennwort eingegeben hat, mit dem er in der Tabelle BSCUSTOMER registriert ist. Wenn ja, wird der interne Rückgabewert s_rc auf 1 gesetzt, ansonsten auf 2.Wenn der Kunde ein falsches Kennwort eingegeben hat, dann wird über das
messages-Objekt eine entsprechende Fehlermeldung ausgegeben:
page->messages->add_message(
condition = 'passwordincorrect'
otr_alias = 'SBOOKSHOP/PASSWORDINCORRECT'
severity = page->messages->CO_SEVERITY_ERROR ).
Hierbei fügt
add_message eine einzelne Meldung hinzu, und zwar unter der angegebenen Bedingung (condition). Die Meldung selbst wird als OTR-Aliastext realisiert (siehe Abschnitt Online Text Repository unter Eventhandler). Die Schwere des Fehlers wird über den Parameter severity angegeben: hier handelt es sich um einen ganz normalen Fehler (CO_SEVERITY_ERROR).
Weitere Informationen über den Einsatz des messages-Objektes finden Sie in der Referenzdokumentation unter
Objekt messages einsetzen und
Klasse CL_BSP_MESSAGES.
Wenn ein unbekannter Benutzername eingegeben wurde, dann kommt es zur Ausgabe einer weiteren Fehlermeldung:
page->messages->add_message(
condition = 'notregistered'
otr_alias = 'sbookshop/notregistered'
severity = page->messages->CO_SEVERITY_WARNING ).
Nur wenn
s_rc den Wert 1 hat, wird auf die Auftragsbestätigungsseite corder.htm navigiert, ansonsten wird nicht navigiert.Der Rückgabewert
s_rc ist ein Seitenattribut, das beim Layout dann die Ausgabe bestimmt.
Erstellen Sie nun die
