Vor 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.)
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.
The Zune concentrates on being a Portable Media Player. Not a web browser. Not a game machine. Maybe in the future it’ll do even better in those areas, but for now it’s a fantastic way to organize and listen to your music and videos, and is without peer in that regard. The iPod’s strengths are its web browsing and apps. If those sound more compelling, perhaps it is your best choice.
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…
Interessant! Muss ich die Tage mal probieren… Werde das Testscript mal ein bisschen umbasteln… Danke!
Viele Grüße
Stefan