Anfang des InhaltsbereichsObjektdokumentation Interface IF_BSP_NAVIGATION Dokument im Navigationsbaum lokalisieren

Überblick

Das Interface IF_BSP_NAVIGATION dient der Steuerung des Überganges zwischen BSPs einer BSP-Applikation.

Eine entsprechende Interface-Referenz ist in allen Eventhandlern einer BSP über den Parameter NAVIGATION verfügbar.

Die Navigation zwischen BSPs kann auf zwei Arten erfolgen:

  1. Bereits im Layout einer BSP wird in den entsprechenden HTML-Elementen wie <form> oder <a> direkt die Folgeseite adressiert.
  2. Innerhalb des Layouts einer BSP wird immer nur die Seite selbst referenziert (z.B. in <form> oder <a>-HTML-Elementen über <%= page->page_name( ) %>) und es wird dann durch das NAVIGATION-Objekt ein dem Ereignis entsprechender Seitenwechsel (per HTTP-Redirect) ausgelöst. Dies ist der in BSP-Applikationen präferierte Mechanismus.

Bei der Seitensteuerung über das Navigationsinterface können (und müssen) in einigen Fällen Argumente an Auto-Seitenattribute der Folgeseite übergeben werden. Hierzu stehen im Navigationsinterface geeignete Methoden zur Verfügung.

Achtung

Beachten Sie dabei, dass die Menge der zu übergebenden Daten durch Limitationen der Web-Browser begrenzt sind (typischerweise 1 KB). Sie sollten also keinesfalls größere Datenmengen übergeben, sondern nach Möglichkeit eher Selektionsschlüssel, die zu diesen Daten führen.

Sollte dies in einzelnen Fällen nicht möglich sein, können Sie alternativ den Mechanismus des "Auto-Submit-Forms" verwenden (siehe unten unter IF_BSP_NAVIGATION~USE_AUTO_SUBMIT_FORM() ), der die Datenmengenbegrenzung aufhebt. Da dieser Mechanismus allerdings mit Problemen bei der Browser-Historie verbunden ist und darüber hinaus nicht für alle Devices (z.B. WAP) unterstützt wird, wird davon abgeraten, ihn grundsätzlich zu verwenden.

Vererbungshierarchie/Interfacekomposition

Implementierende Klassen

CL_BSP_NAVIGATION

Erweitertes Interface

-

Spezialisierende Interfaces

-

Attribute

-

Methoden

Methode call_application

Signatur

method call_application
  importing
    url type string
    return_url_parameter type string default 'sap-exiturl'
    return_event_id type string optional
  .

Beschreibung

Sie können diese Methode verwenden, um eine externe Applikation aufzurufen. Diese Applikation wird über den HTTP-Redirect-Mechanismus angesprungen.

Die externe Applikation muss im Parameter URL angegeben werden.

Damit aus der externen Applikation wieder zur rufenden Applikation zurückgekehrt werden kann, muss diese 1. geeignet implementiert sein und 2. die nötige Rücksprungadresse übergeben werden.

Als Rücksprung-URL wird implizit die aktuelle Seite verwendet, aus der heraus der Aufruf der externen Applikation erfolgt. Über den Parameter return_event_id kann zusätzlich eine Event-ID gewählt werden, der beim Rücksprung als Event-ID im OnInputProcessing-Eventhandler dieser BSP ausgelöst werden soll.

Da die Übergabe der Rücksprungadresse bei externen Applikationen nicht immer einheitlich vorausgesetzt werden kann, ist es möglich, diesen über den Parameter return_url_parameter frei zu wählen. Per Default ist der Name sap-exiturl, wodurch sich BSP-Applikationen untereinander einfach aufrufen können. Im Falle einer ITS-basierten Applikation wäre ~exitURL zu verwenden.

Achtung 

Die eigentliche Navigation wird hier noch nicht ausgelöst, sondern erst nach der Rückkehr aus dem BSP-Eventhandler!

Parameter

URL

URL der externen Applikation

RETURN_EVENT_ID

Name des Parameters, mit dem die Rücksprungadresse/URL an die gerufene Applikation übergeben werden soll

RETURN_URL_PARAMETER

Event-ID, mit der beim Rücksprung aus der gerufenen Applikation der OnInputProcessing-Eventhandler der rufenden Seite angesprochen werden soll

Return-Werte/Ausnahmen

-

Methode encode_parameters

Signatur

method encode_parameters
  importing
    encoded type i value 1
  .

Beschreibung

Diese Methode steuert, ob die über set_parameter() definierten Parameter unkodiert, d.h. in Klartext als Name/Wert-Paare im Query-String der URL, oder kodiert, d.h. BASE64-kodiert als Wert des URL-Parameter sap-params, übergeben werden sollen.

Per Default werden Parameter kodiert übergeben.

Achtung 

Es handelt sich hierbei lediglich um eine kodierte, keinesfalls eine verschlüsselte Übertragung der Parameterwerte!

Parameter

ENCODED

0: Parameter wird in Klartext als Name/Wert-Paare übergeben

1: Parameter wird BASE64-kodiert übergeben

Return-Werte/Ausnahmen

-

Methode exit

Signatur

method exit
  importing
    exit_url type string optional
  .

Beschreibung

Diese Methode beendet diese BSP-Applikation unabhängig davon, ob diese Applikation stateful oder stateless arbeitet.

Es wird insbesondere der Eventhandler if_bsp_application_events~on_stop getriggert, falls das Interface IF_BSP_APPLICATION_EVENTS von der Applikationsklasse implementiert wird.

Der optionale Parameter exit_url kann verwendet werden, um per HTTP-Redirect zu einer beliebigen "Endeseite" bzw. URL zu springen.

Achtung 

Die eigentliche Navigation wird hier noch nicht ausgelöst, sondern erst nach der Rückkehr aus dem BSP-Eventhandler!

Parameter

EXIT_URL

URL, zu der ein HTTP-Redirect als "Endeseite" ausgeführt werden soll.

Return-Werte/Ausnahmen

-

Methode get_parameter

Signatur

method get_parameter
  importing
    name type string
  returning
    value type string
  .

Beschreibung

Diese Methode liefert den Wert des angeforderten Parameters aus dem Navigationsobjekt.

Achtung 

Im Gegensatz zu set_parameter() liefert diese Methode den Wert immer als String!

Parameter

NAME

Name des Parameters

VALUE

Wert des Parameters

Return-Werte/Ausnahmen

-

Querreferenz

set_parameter

Methode goto_page

Signatur

method goto_page
  importing
    url type string
  .

Beschreibung

Diese Methode veranlasst die Navigation zur gegebenen URL.

In den meisten Fällen ist diese URL eine relative URL und enthält nur den Namen der Folgeseite, also z.B. navigation->goto_page( 'confirm.htm' ).

Im Gegensatz zur Methode next_page() wird hier die Folgeseite direkt angegeben.

Achtung 

Die eigentliche Navigation wird hier noch nicht ausgelöst, sondern erst nach der Rückkehr aus dem BSP-Eventhandler!

Parameter

URL

URL zur Folgeseite, typischerweise eine relative URL bzw. nur der Seitenname

Return-Werte/Ausnahmen

-

Querreferenz

next_page

Methode has_parameters

Signatur

method has_parameters
  returning
    has_parameters type i
  .

Beschreibung

Diese Methode signalisiert, ob für das aktuelle Navigationsobjekt Paramter gesetzt wurden (0: nein, 1: ja).

Parameter

-

Return-Werte/Ausnahmen

HAS_PARAMETERS

0: keine Parameter gesetzt

1: Parameter gesetzt

Querreferenz

set_parameter

Methode next_page

Signatur

method next_page
  importing
    exit type string
  .

Beschreibung

Diese Methode definiert die Folgeseite über Angabe eines Seitenausgangs.

Seitenausgänge eines Navigationsgraphen können in der Entwicklungsumgebung (Transaktion SE80) zu einer BSP Applikation definiert werden. Dabei wird ausgehend von einer aktuellen Seite über einen Seitenausgang (i.e. eine "Kante", die durch einen eindeutigen Namen identifiziert wird) eine Zielseite zugeordnet. Bei der Navigation zwischen Seiten wird dann nicht direkt die Folgeseite im ABAP-Code definiert, sondern stattdessen eine Indirektion eingeschoben. Es wird der Name des Seitenausgangs verwendet, um die aktuell zum Seitenausgang zugeordnete Folgeseite zu ermitteln. Diese kann dann leicht geändert werden, ohne alle Verwendungstellen im Code anpassen zu müssen.

Achtung

Die eigentliche Navigation wird hier noch nicht ausgelöst, sondern erst nach der Rückkehr aus dem BSP-Eventhandler!

Parameter

EXIT

Name des Seitenausgangs im Navigationsgraphen (case-insensitiv)

Return-Werte/Ausnahmen

-

Querreferenz

goto_page

Methode response_complete

Signatur

method response_complete .

Beschreibung

Sie können diese Methode verwenden, um der BSP-Laufzeit zu signalisieren, dass nach der Rückkehr aus dem BSP-Eventhandler, in dem sie aufgerufen wurde, keine weiteren Eventhandler/Sektionen mehr angesprochen werden sollen. Vielmehr ist die HTTP-Response bereits vollständig erzeugt und kann an den Client/Browser zurückgesendet werden.

Diese Methode wird typischerweise in der OnRequest- oder OnInitialization-Sektion einer BSP gerufen, wenn die HTTP-Response auf anderem Wege als der OnLayout-Sektion erzeugt (z.B. MIME-Objekt aus der Datenbank oder generierter XML-Output) und direkt in das HTTP-Response-Objekt geschrieben wurde. Das Aufrufen der OnLayout-Sektion würde in solchen Fällen leicht unerwünschte Ausgaben an die Antwort anfügen (z.B. Leerzeichen, die bei Binärdokumenten kritisch sind) und kann hiermit unterdrückt werden.

Parameter

-

Return-Werte/Ausnahmen

-

Methode set_parameter

Signatur

method set_parameter
  importing
    name type string
    value type any optional
  .

Beschreibung

Diese Methode setzt den gegebenen Parameter für die Übergabe an die Folgeseite.

Der Name des Parameters deckt sich in der Regel mit einem Auto-Seitenattribut der Folgeseite. Andernfalls kann er über das Request-Objekt und die Methode if_http_request~get_form_field() in der Folgeseite gelesen werden.

Der Wert des Parameters kann unter manchen Umständen entfallen. Dies ist dann der Fall, wenn im aktuellen Request ein gleichnamiges Form-Feld gesendet wurde, welches an die Folgeseite "durchgeschleust" werden soll. Der Parameterwert wird dann einfach auf Grund von Namensgleichheit aus dem aktuellen Request übernommen und an die Folgeseite übergeben.

Da beliebige ABAP-Datentypen außer Referenzen übergeben werden können, kann der Parameter VALUE nur untypisiert sein.

Parameter

NAME

Name des Parameters

VALUE

Wert des Parameters; falls der Parameter nicht angegeben ist, wird der Wert des gleichnamigen Form-Feldes aus dem HTTP-Request übernommen.

Return-Werte/Ausnahmen

-

Querreferenz

get_parameter, has_parameters

Methode use_auto_submit_form

Signatur

method use_auto_submit_form
  importing
    target_frame type string optional
  .

Beschreibung

Diese Methode veranlasst, dass bei der Navigation zu einer Folgeseite kein HTTP-Redirect verwendet wird, sondern stattdessen eine HTML-Seite mit eingebettetem Formular eingesetzt wird. Die zu übergebenden Parameter werden in das Formular als verborgene Felder eingemischt, und das Formular wird direkt nach dem Erhalt im Browser automatisch wieder an die Folgeseite abgeschickt (auto-submit).

Durch diese Methode können Sie die Datenmengebegrenzung bei Query-String-Parametern im Redirect-Fall umgehen. Beachten Sie jedoch, dass Auto-Submit-Formulare in der Browser-Historie zu Problemen führen können und dieser Mechanismus z.B. mit WAP-Devices nicht verwendet werden kann.

Über den Parameter target_frame können Sie steuern, in welchem HTML-Frame (ggfs. neues Browser-Fenster) die Folgeseite zur Anzeige kommen soll.

Parameter

target_frame

Name des Frames, in dem die Folgeseite angezeigt werden soll.

Return-Werte/Ausnahmen

cx_bsp_inv_param_type

Ausnahme: Der Typ des Parameters ist nicht zulässig.

Ende des Inhaltsbereichs