Anfang des Inhaltsbereichs

Vorgehensweisen Eventhandler Dokument im Navigationsbaum lokalisieren

Verwendung

Für die Bestellseite benötigen Sie nur den Eventhandler OnInputProcessing.

Hinweis

Grundsätzliches zu Eventhandlern entnehmen Sie dem Anschnitt StrukturlinkEventhandler der Dokumentation zum StrukturlinkSAP 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
  WHERE customerid = customerid.

 

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 Strukturlinkmessages-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).

Hinweis

Weitere Informationen über den Einsatz des messages-Objektes finden Sie in der Referenzdokumentation unter StrukturlinkObjekt messages einsetzen und StrukturlinkKlasse 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.

 

Diese Grafik wird im zugehörigen Text erklärtErstellen Sie nun die Registrierungsseite.

Ende des Inhaltsbereichs