Anfang des InhaltsbereichsVorgehensweisen 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