Anfang des Inhaltsbereichs

Vorgehensweisen Wie sehen die Eventhandler für Ihre Ergebnisseite aus? Dokument im Navigationsbaum lokalisieren

Für den Verarbeitungsablauf der Ergebnisseite results.htm sind zwei Eventhandler notwendig, OnInitialization und OnInputProcessing.

OnInitialization

data: isbn_tab TYPE isbn_tab.

CALL METHOD cl_book_shop=>search_book
    EXPORTING
        author = author
        title = title
        publisher = publisher
        ISBN = ISBN
        keyword = keyword
    IMPORTING isbn_tab = isbn_tab
    EXCEPTIONS
        no_search_parameter = 2
        invalid_isbn = 4.

if sy-subrc = 4.
  navigation->goto_page( 'invalid_isbn.htm' ).
elseif sy-subrc <> 0.
  navigation->goto_page( 'error.htm' ).
endif.

IF sy-subrc = 0.
  CALL METHOD cl_book_shop=>get_book_data
    EXPORTING
      isbn_tab = isbn_tab
    IMPORTING
      bookcat_tab = bookcat_tab
    EXCEPTIONS
      empty_input_table = 2
      invalid_isbn = 4.
ENDIF.

Mit der data-Anweisung wird die Datenübernahme der ISBN-Tabelle festgelegt.

Durch den Aufruf der Methode search_book der Klasse cl_book_shop werden die zu den Benutzereingaben passenden Bücher gesucht. Dabei werden der Methode search_book die Seitenparameter author, title, publisher, isbn und keyword übergeben, und der Parameter isbn_tab wird mit den gefundenen Büchern zurückgegeben. Die folgenden Ausnahmen bzw. Fehler sind in search_book definiert:

Dies wurde bereits im OnInputProcessing der Suchseite abgefragt. Der Fall kann also hier nicht mehr auftreten.

In diesem Fall wird eine ISBN-Fehlerseite (invalid_isbn.htm) aufgerufen.

In diesem Fall wird zu einer allgemeinen Fehlerseite (error.htm) verzweigt.

Wenn keine Fehler auftreten, werden die dazu passenden Daten durch den Aufruf der Methode get_book_data der Klasse cl_book_shop ermittelt. Es ist möglich, dass keine passenden Einträge gefunden wurden, d.h. isbn_tab ist leer. Dann gibt get_book_data den sy-subrc = 2 zurück, die Tabelle bookcat_tab ist leer. Dies wird im Layout-Teil abgefragt.

OnInputProcessing

navigation->set_parameter( 's_cata_id' ).

Aufgrund der Benutzereingaben wird die Navigation zu dem Buch mit der s_cata_id durchgeführt, die im Layout mit der folgenden Anweisung festgelegt wurde:

<a href="showbook.htm?s_cata_id=<%= bookcat-cata_id %>">

Diese Grafik wird im zugehörigen Text erklärt Layout für die Buchseite

Ende des Inhaltsbereichs