Show TOC

HintergrundInterface IF_BSP_NAVIGATION Dieses Dokument in der Navigationsstruktur finden

 

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

Ende der Warnung.
Vererbungshierarchie/Interfacekomposition
Implementierende Klassen

CL_BSP_NAVIGATION

Erweitertes Interface

-

Spezialisierende Interfaces

-

Attribute

-

Methoden
Methode call_application

Signatur

Syntax Syntax

  1. method call_application
      importing
        url                  type string
        return_url_parameter type string default 'sap-exiturl'
        return_event_id      type string optional
      .
    
Ende des Codes

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 Achtung

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

Ende der Warnung.

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

Syntax Syntax

  1. method encode_parameters 
      importing 
        encoded type i value 1 
      .
    
Ende des Codes

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 Achtung

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

Ende der Warnung.

Parameter

ENCODED

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

1: Parameter wird BASE64-kodiert übergeben

Return-Werte/Ausnahmen

-

Methode exit

Signatur

Syntax Syntax

  1. method exit 
      importing
        exit_url type string optional
      .
    
Ende des Codes

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 Achtung

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

Ende der Warnung.

Parameter

EXIT_URL

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

Return-Werte/Ausnahmen

-

Methode get_parameter

Signatur

Syntax Syntax

  1. method get_parameter
      importing
        name  type string 
      returning 
        value type string
      .
    
Ende des Codes

Beschreibung

Diese Methode liefert den Wert des angeforderten Parameters aus dem NAVIGATION-Objekt.

Achtung Achtung

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

Ende der Warnung.

Parameter

NAME

Name des Parameters

VALUE

Wert des Parameters

Return-Werte/Ausnahmen

-

Querreferenzen

siehe auch: set_parameter

Methode goto_page

Signatur

Syntax Syntax

  1. method goto_page 
      importing
        url type string
      .
    
Ende des Codes

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 Achtung

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

Ende der Warnung.

Parameter

URL

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

Return-Werte/Ausnahmen

-

Querreferenzen

siehe auch: next_page

Methode has_parameters

Signatur

Syntax Syntax

  1. method has_parameters 
      returning
        has_parameters type i
      .
    
Ende des Codes

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

Querreferenzen

siehe auch: set_parameter

Methode next_page

Signatur

Syntax Syntax

  1. method next_page
      importing
        exit type string
      .
    
Ende des Codes

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 Achtung

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

Ende der Warnung.

Parameter

EXIT

Name des Seitenausgangs im Navigationsgraphen (case-insensitiv)

Return-Werte/Ausnahmen

-

Querreferenzen

siehe auch: goto_page

Methode response_complete

Signatur

Syntax Syntax

  1. method response_complete .
    
Ende des Codes

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

Syntax Syntax

  1. method set_parameter 
      importing 
        name  type string
        value type any optional  
      .
    
Ende des Codes

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

-

Querreferenzen

siehe auch: get_parameter, has_parameters

Methode use_auto_submit_form

Signatur

Syntax Syntax

  1. method use_auto_submit_form 
      importing 
        target_frame  type string optional
      .
    
Ende des Codes

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.