Show TOC

Suspend-Resume-AufrufeLocate this document in the navigation structure

Verwendung

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 stillgeleg" 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 anderen Technologie erstellt wurde (z.B. BSP)

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.

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.

Suspend-Aufruf einer Web-Dynpro-ABAP-Anwendung

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

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

            

Die URL einer Web-Dynpro-Anwendung wird als eine ihrer Eigenschaften auf der entsprechenden Registerkarte der Anwendung im Web Dynpro Explorer 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.

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

Hinweis

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

Achtung

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

Schließt der Anwender die Zielanwendung ohne zur Startanwendung zurückzukehren, wird die Session der Startanwendung nicht gelöscht und verbleibt bis zum Timeout im System. Vorhandene Sperren auf Objekte, die durch die Startanwendung gesetzt wurden bleiben bis zum Timeout bestehen. Entfernen Sie Sperren auf Objekte in der Navigation zur Zielanwendung in der Startanwendung . Bricht ein User die Zielanwendung ab, kann dann die Startanwendung sofort erneut gestartet werden, ohne auf Sperren zu treffen. Bei der Rückkehr in die Startanwendung muss dann die Konsistenz der Daten erneut geprüft werden.