SAP Browserabsprung – SAP Transaktion aus Webseite öffnen

SAP aus Browser aufrufenVor einiger Zeit geriet ich in eine Diskussion, on es möglich sei, Transaktionen in der SAP GUI aus dem Browser heraus zu öffnen. Die Meinung der Kollegen war recht gefestigt – so etwas ginge nicht.

Ich habe dagegen gehalten und ein kleines Proof-of-Concept erstellt. Denn es funktioniert. Zwar nicht schön, aber es funktioniert. Und so lässt sich die SAP GUI aus dem Browser aufrufen.

sapshcut.exe und was man damit anstellen kann

Die Lösung arbeitet unter anderem mit der sapshcut.exe (kurz für SAP Shortcut). Diese .exe-Datei ermöglicht es die SAP GUI parametrisiert zu starten. Die möglichen Parameter reichen von Benutzername, über Anmeldesprache bis zur auszuführenden Transaktion. Eine vollständige Liste erhält man, wenn man die sapshcut.exe mit dem Parameter -? aufruft. (Siehe nachfolgende Screenshots.)

sapshcut.exe - help from cmd  sapshcut.exe - Command list

Um einen Absprung aus einem Webbrowser zu ermöglichen, muss also nur die sapshcut.exe mit den passenden Parametern aufgerufen werden. Und hier liegt auch schon die Ursache dafür, dass ich in der Einleitung schrieb, dass es keine schöne Lösung sei. Um .exe-Dateien aus dem Browser auszuführen, gibt es nur eine, einigermaßen “standardisierte” Lösung: ActiveX. Und das wiederum funktioniert – aus Sicherheitsgründen – in fast keinem Browser, außer dem Internet Explorer. (Wie sollte es auch anders sein…)

Absprung nach SAP aus dem Internet Explorer

Um den Absprung aus einer Webseite in die SAP-GUI auszuführen reicht folgende, vierzeilige Javascript-Funktion, die innerhalb einer beliebigen Webseite eingebaut werden kann.

function openSAPGui(sid, client, user, password, transaction){
    var shell = new ActiveXObject("WScript.Shell");
    shell.run('sapshcut.exe -system="'+sid+'" -client='+client+' -user="'+user+'" -pw="'+password+'" -language=DE -Command="'+transaction+'"');
}

Theoretisch kann man das ganze natürlich noch weiter zusammenfassen, in der Praxis und im Sinne der Wiederverwendbarkeit, macht eine Kapselung innerhalb einer kleinen Javascript-Funktion jedoch Sinn.

Wer keine Lust hat, erst noch eine Testseite um die Javascript-Funktion zu bauen, kann sich an nachfolgendem Testscript bedienen. Einfach Code kopieren, in Textdatei einfügen, als [dateiname].html abspeichern und im Internet Explorer öffnen.

<html>
<head>
	<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
</head>
<body>


<h2>SAP-Browserabsprung</h2>


	Transaktion:
<input id="transaktion" type="text"></input>
	User:
<input id="usr" type="text"></input>
	Passwort:
<input id="pass" type="password"></input>
	SID:
<input id="sid" type="text"></input>
	Mandant:
<input id="mand" type="text"></input>

	<button id="go" type="button">Absprung!</button>
	
	<script>
	$(document).ready(function(){

		$('#go').click(function(){
			var trans = $('#transaktion').val();
			var usr = $('#usr').val();
			var pass = $('#pass').val();
			var sid = $('#sid').val();
			var mand = $('#mand').val();
			openSAPGui(sid, mand, usr, pass, trans);			
		});
		
	});
	
	function openSAPGui(sid, client, user, password, transaction){
		var shell =  new ActiveXObject("WScript.Shell");
		shell.run('sapshcut.exe -system="'+sid+'" -client='+client+' -user="'+user+'" -pw="'+password+'" -language=DE -Command="'+transaction+'"');			
	}
	</script>
</body>
</html>

Solltet Ihr eine elegantere oder vielleicht sogar Cross-Browser-kompatible Lösung kennen, immer her damit! Ich freue mich auf eure Anregungen und Vorschläge.

2 Kommentare

  1. Matthias Hoffmannsays:

    M.E. richtet die SAPGUI beim Installieren eine Verknüpfung zu .SAP-Dateien ein. Klickt man eine solche im Browser bzw. legt fest, daß diese sofort geöffnet werden, startet dann der zuständige Handler für .SAP (vermutlich sapshortcut.exe). Ergo kann man durch das Hosten von .SAP-Dateien als Linkziel Absprüngen aus der Browser-UI zu lokalen SAPGU-Transaktionen machen…

  2. Stefansays:

    Interessant! Muss ich die Tage mal probieren… Werde das Testscript mal ein bisschen umbasteln… Danke!

    Viele Grüße
    Stefan

Hinterlasse einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Sie dient nur dem Spamschutz.