Zum Hauptinhalt springen

Tipps & Tricks: Eine Anwendung aus der Anwendung schließen

Parallel zu MS Word 2010 war bei älteren Versionen als arcplan Enterprise 5 ein Schließen über das Menü, vergleichbar mit MS Word 2010 über „Datei“ und „Beenden“, notwendig, um die Verbindungen zur Datenbank vollständig zu beenden. Wird dies nicht durchgeführt, können ggf. Objekte in SAP gesperrt oder Ressourcen unnötig geblockt sein.

Da dies aber ab arcplan Enterprise 5 und jünger nicht mehr notwendig ist, handelt es sich hierbei nur noch um ein kosmetisches Vorgehen.

Die Problemstellung

Die Funktion BEENDEN beendet die Verbindung zur arcplan-Session. Jedoch wird dadurch nicht, wie von anderen Programmen gewohnt, das Browserfenster mit dem Java-Client geschlossen. Dies muss manuell durch den Anwender durchgeführt werden. Damit hat die Funktion BEENDEN für sich alleine in einer Webanwendung keinen funktionalen Sinn, da mit dem Schließen des Browserfensters auch direkt die arcplan-Session beendet würde.

Das Beenden einer Anwendung

Um die Funktion im Web zum wirklichen „Beenden“ einer Anwendung zu nutzen, ist es notwendig, noch den Browser zu schließen. Dafür kann auf den JavaScript-Befehl „window.close()“ in der ausführenden Website zurückgegriffen werden. Folgender JavaScript-Code muss hierfür in der Startseite der Anwendung ergänzt werden (ab arcplan Enterprise 7 wird dieser auch nicht mehr durch den Administrator überschrieben):

….
<HEAD>
…<script type="text/javascript">

Function FensterSchliessen() {
           Window.close();
}


</script>

</HEAD>
<BODY>…

Über die in arcplan Enterprise 6 eingeführte Formel STARTENJS ist diese JavaScript-Funktion nun einfacher aufrufbar. Der Befehl lautet: STARTENJS(„FensterSchliessen“)

Kombiniert bilden diese beiden Funktionen eine saubere Möglichkeit, eine Anwendung aus sich selbst heraus zu schließen:

STARTENJS(„FensterSchliessen“)
BEENDEN()

Nützliche Hintergrundinformationen

Vielleicht ist Ihnen aufgefallen, dass nach dem Schließen des Browsers noch die Session beendet wird. Das ist nicht zwingend notwendig, sorgt aber dafür, dass direkt nach dem Schließen des Fensters die Session beendet wird. Ansonsten könnte es auftreten, dass noch nachgelagerte Funktionen ausgeführt werden, die ein Schließen der Session verlängern.

Wird beispielsweise eine Datenbankabfrage nach STARTENJS ausgelöst, wird die Session erst nach der kompletten Ausführung beendet. Mit dem direkten Beenden der Anwendung wird dies aktiv unterbunden. (arcplan Enterprise erkennt das Schließen erst, wenn alle folgenden Aktionen fertig ausgeführt wurden. Das heißt, selbst wenn der Browser geschlossen ist, könnte arcplan noch Aktionen auf dem Server ausführen. Die Anwendung bzw. die User-Sessions werden nicht auf dem Client, sondern auf dem Server ausgeführt.)

Stefan Kersten
Dein Ansprechpartner
Stefan Kersten
Competence Center Leiter