Show TOC

HintergrundSuspend-Resume-Aufrufe Dieses Dokument in der Navigationsstruktur finden

 

Ein Suspend-Resume-Aufruf einer Web-Dynpro-ABAP-Anwendung ist immer dann sinnvoll, wenn Sie zu einer zweiten, unabhängig laufenden Anwendung hin navigieren möchten, ohne die laufende Anwendung zu schließen. Zur Realisierung eines solchen Aufrufs können Sie an der Interface-View eines Web-Dynpro-Windows beliebige Outbound- bzw. Inbound-Plugs als Suspend- bzw. Resume-Plugs markieren. Der Aufruf eines Suspend-Plugs ist dem eines Exit-Plugs insofern ähnlich, als dass beide Plugs dazu dienen, eine laufende Web-Dynpro-ABAP-Anwendung zu verlassen. Im Unterschied zum Exit-Plug erlaubt die Verwendung eines Suspend-Plugs jedoch die Rückkehr in die ursprüngliche Anwendung, nachdem eine zweite, unabhängige Anwendung genutzt wurde. Die ursprüngliche Anwendung wird nicht, wie beim Aufruf eines Exit-Plugs, geschlossen, sondern lediglich "stillgelegt" und mit Hilfe eines Resume-Plugs wieder aktiviert.

Einen Suspend-Aufruf können Sie an einer Web-Dynpro-ABAP-Anwendung zu folgenden Zielen definieren:

  • zu einer anderen Web-Dynpro-Anwendung

  • zu einer Web-Anwendung, die mit einer anderer Technologie erstellt wurde (z.B. BSP)

Hinweis Hinweis

Da Suspend- und Resume-Plugs der Kommunikation aus der laufenden Component heraus dienen, sind sie nur dann sinnvoll, wenn sie auch der Interface-View des Windows hinzugefügt wurden.

Jeder Suspend-Plug besitzt den Parameter URL, der hier, im Gegensatz zum Exit-Plug, nicht optional sondern obligatorisch ist: Beim Aufruf eines Suspend-Plugs muss eine Ziel-URL übergeben werden.

Wenn für eine Interface-View mindestens ein Suspend-Plug angelegt wurde, muss dort auch ein Resume-Plug angelegt werden. Ohne Resume-Plug ist es nicht möglich, eine Anwendung im Suspend-Zustand wieder zu aktivieren. Für jedes Web-Dynpro-Window kann maximal ein Plug als Resume-Plug deklariert werden.

Ende des Hinweises.

Achtung Achtung

Beachten Sie die Sicherheitsaspekte bei Suspend und Resume. Weitere Informationen finden Sie unter Sicherheit der Daten von Web-Anwendungen und Zulässigkeit von Datenbankänderungen beim Start und Resume.

Ende der Warnung.
Suspend-Aufruf einer Web-Dynpro-ABAP-Anwendung

Die Abbildung wird im Begleittext erläutert.

Die Einrichtung eines solchen Suspend-Aufrufs ist sehr einfach: Nachdem Sie an der primären Web-Dynpro-ABAP-Anwendung einen Outbound-Plug als Suspend-Plug markiert haben, übergeben Sie beim Aufruf des Plugs als Wert für den Parameter URL einen String, der die URL der Zielanwendung darstellt (siehe nachfolgendes Code-Beispiel).

Syntax Syntax

  1. method ONACTIONGO_SUSPENDING .
    data: L_REF_MAIN_WINDOW type ref to IG_MAIN_WINDOW .
    L_REF_MAIN_WINDOW =   WD_THIS->GET_MAIN_WINDOW_CTR( ).
      L_REF_MAIN_WINDOW->FIRE_GO_SUSPENDING_PLG(
        URL =   'http://…………/webdynpro/sap/my_secondary_wda'  ).
    
    endmethod..
    
Ende des Quelltextes.

Die URL einer Web-Dynpro-Anwendung wird als eine ihrer Eigenschaften auf der entsprechenden Registerkarte der Anwendung im Web Dynpro Eplorer aufgeführt. Von dort können Sie sie kopieren.

Wann immer in der sekundären Web-Dynpro-ABAP-Anwendung ein Exit-Plug gefeuert wird, wird diese Anwendung beendet, und der Resume-Plug der primären Anwendung wird automatisch aufgerufen. Innerhalb des Web-Dynpro-Frameworks wird im Rahmen des Suspend-Aufrufs eine Referenz auf die laufende Instanz der primären Anwendung mit übergeben. Die sekundäre Anwendung kennt ihren Zustand als Folge-Anwendung einer "stillgelegten" Primär-Anwendung und springt daher beim Aufruf eines beliebigen Exit-Plugs mit Hilfe der übergebenen Referenz zum Resume-Plug der Primär-Anwendung zurück.

In diesem Fall sind deshalb keine weiteren programmatischen Schritte nötig.

Suspend-Aufruf einer Nicht-Web-Dynpro-ABAP-Anwendung

Die Erstellung eines Suspend-Aufrufs zu einer Nicht-Web-Dynpro-ABAP-Anwendung gestaltet sich etwas komplexer, da auch in der sekundären Anwendung Anpassungen erforderlich sind. So müssen Sie dort beispielsweise den Mechanismus zum Rücksprung in die primäre Anwendung implementieren. Dafür müssen Sie neben dem obligatorischen Parameter URL mit der Adresse der sekundären Anwendung auch die URL der eigenen Anwendung für den späteren Resume-Schritt übergeben. Diese Resume-URL wird ebenfalls als URL-Parameter an die sekundäre Anwendung übergeben.

In der sekundären Anwendung muss die Resume-URL ausgelesen werden. Anschließend wird in deren Browser-Fenster ein Redirect auf die Resume-URL geöffnet.

Die Abbildung wird im Begleittext erläutert.

Über diese URL wird die primäre Anwendung über ihren Resume-Plug gerufen und wieder aktiviert.

Hinweis Hinweis

Suspend- und Resume-Plugs können freie Parameter besitzten. Weitere Informationen finden Sie unter Window: Parameter an Inbound- und Outbound-Plugs.

Ende des Hinweises.

Achtung Achtung

Suspend-Resume-Aufrufe sind nicht für den Einsatz in einer Portal-Umgebung freigegeben.

Ende der Warnung.