Wie Hilfen SAP -Anwendungen aktiv helfen

Transcrição

Wie Hilfen SAP -Anwendungen aktiv helfen
Tricktresor
Wie Hilfen SAP®-Anwendungen aktiv helfen
®
von Strefan Schnell
SAP GUI Scripting
Aufgrund stetig steigender Funktionsumfänge werden SoftwareOberflächen im ERP-Bereich immer komplexer und sind für den Anwender oftmals nur noch schwer zu durchschauen. Zusätzlich sind über einen
längeren Zeitraum gleich bleibende Arbeitsabläufe im Business auch eher
selten anzutreffen. Diese Dynamik führt dazu, dass Aufgaben, die
einmalig oder selten ausgeführt werden, schnell zu erheblichen Zeitaufwänden führen können. Skripte, die in Online-Hilfen verwendet werden,
liefern einen Ansatz dies zu umgehen. Sie können den Anwendern direkt
zeigen und erläutern wie vorzugehen ist. Neben dem Lerneffekt steht die
Realisierung der Lösung im Fokus. Dabei sind die Skripte in den bekannten Informationsrahmen der Hilfe eingebettet und stehen im inhaltlichen
Kontext des Hilfedokumentes und seiner Struktur.
Das SAP® GUI Scripting ist ein Objektmodell
das den SAP ® GUI zu seiner Laufzeit
repräsentiert. Mit ihm können Interaktionen
des Users mit dem GUI automatisiert werden.
Auf jedes Element des GUI kann über die
Objekthierarchie des SAP® GUI Scripting
zugegriffen werden. Es ist Bestandteil jeder
GUI-Installation. Die Schnittstelle besteht aus
der COM-Bibliothek SAPFEWSE.OCX und
darüber hinaus gibt es noch eine Reihe weiterer
Bibliotheken. Jede Programmiersprache, die
eine COM-Schnittstelle anbietet, kann das
SAP® GUI Scripting nutzen, z.B. VBScript®.
Zur Unterstützung der Anwender werden
heutzutage in Software-Oberflächen gezielte
Sprünge in die Hilfe und beschreibende
Hilfeelemente integriert. Um aus der
Perspektive der Hilfe diesen Kreis zu schließen
sind in ihr integrierte Funktionen die Folge.
Damit wird die Hilfe für den Anwender
komplettiert. Die Abgrenzungen zwischen der
Programmnutzung, zur Erledigung einer
Arbeitsaufgabe, und der zugehörigen
Dokumentation, zum Verständnis der
Arbeitsaufgabe, wird für den Anwender aufgehoben.
Verwendet
elektronische
Dokumentation
Verwendet
beschreibende
Hilfselement
einem VB -Skript an; es sei an dieser Stelle
noch nebenbei erwähnt, dass natürlich hier
auch JavaScript verwendet werden kann.
Zur Erstellung unseres ersten Skriptes
verwenden wir die Skript-Aufzeichnungsfunktion des SAP® GUI. Sie ist in der ToolBar
beim Button Lokales Layout anpassen
(Alt+F12) zu finden.
Neben den notwendigen Tags einer HTMLDatei sehen wir im head-segment eine
script-Deklaration. In ihr ist eine SubProzedur mit dem Namen Test definiert sie öffnet einfach nur eine MessageBox. Im
body-segment ist, neben einem Text, ein
Button definiert. Wird er betätigt, also tritt
das Ereignis onClick ein, wird die Prozedur
Test ausgeführt. Dieser minimale Rahmen
reicht für unsere weiteren Betrachtungen
jetzt schon aus. Natürlich bietet sich an
dieser Stelle jetzt an alle Möglichkeiten von
HTML, CSS usw. einzusetzen und eine
umfangreiche Hilfe inhaltlich und visuell
auszuprägen. Wir konzentrieren uns nun
auf die Verwendung des SAP® GUI
Scripting im VBScript®.
Nach der Auswahl und der Festlegung in
welchem Pfad die Skriptdatei gespeichert
werden soll, kann die Aufzeichnung beginnen.
®
Programmnutzung
(Verkettung von Funktionsaufrufen)
Führt
Funktionen
(Skripte) aus
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
Im Folgenden soll in einfachen Schritten ein
integrativer Ansatz gezeigt werden, wie sich
Skripte in HTML-Dateien einbetten bzw.
verwenden lassen. Dann mittels dieser Skripte,
unter Verwendung des SAP® GUI Scripting,
SAP®-Anwendungen angesprochen werden
können. Und schließlich alles in eine HilfeDatei verpackt und mit ihr verbunden wird. Im
Weiteren wird gezeigt wie diese Hilfe aus SAP®
mit ABAP® angesprochen und verwendet
werden kann.
Durch die Anwendung unterschiedlicher
Software-Techniken, Plattformen und deren
Verknüpfung erscheint dieses Vorgehen auf den
ersten Blick kompliziert. Bei genauerem
Hinsehen enthüllt sich jedoch, mit jedem
einzelnen Schritt, eine Einfachheit, die simpel
genutzt werden kann. Die Stärke liegt in den
Potentialen der Vernetzung.
Der HTML-Rahmen mit VBScript®
Schauen wir uns einen HTML-Rahmen mit
<title>
HTML-Test
</title>
<script type="text/VBScript">
<!-Sub Test()
MsgBox "Dies ist ein Test"
End Sub
'-->
</script>
</head>
<body>
HTML-Test<br />
<form action="">
<input type="button" value="MsgBox" onClick="Test()">
</form>
</body>
</html>
Tricktresor
'-Begin------------------------------------------------------'-Ermittlung des laufenden SAP GUI-------------------------If Not IsObject(application) Then
Set SapGuiAuto = GetObject("SAPGUI")
Set application = SapGuiAuto.GetScriptingEngine
End If
'-Setzen der Verbindung------------------------------------If Not IsObject(connection) Then
Set connection = application.Children(0)
End If
'-Setzen des Modus-----------------------------------------If Not IsObject(session) Then
Set session = connection.Children(0)
End If
'-Ausfuehrung der Aktivitaeten-----------------------------session.findById("wnd[0]/tbar[0]/okcd").text = "/nSE80"
session.findById("wnd[0]/tbar[0]/btn[0]").press
Da wir jedoch diesbezüglich alle der Verantwortung gegenüber stehen, entsprechende
Protektionsmechanismen zu installieren und zu
betreiben, verändert sich das Risiko damit nicht
maßgeblich - solange wir uns verantwortungsvoll verhalten. Leider ist es erfahrungsgemäß
eher so, dass geäußerte Sicherheitsbedenken
oftmals Innovationen stoppen. Da wird mehr
Zeit auf die Ausmalung theoretischer
Katastrophen-Szenarien verwendet, als dass
darüber nachgedacht wird, wie ein praktikabler
Schutz erreicht werden kann.
Das Ausführen von Dateien unterliegt im
Kontext des Internet Explorers®, mit dessen
Modulen auch die Online-Hilfen angezeigt
werden, einer besonderen Überwachung. Es ist
im Standard ohne Zustimmung des Anwenders
weder möglich ein Skript auszuführen, noch ein
Programm zu starten. Dies muss explizit
bestätigt werden.
'-End--------------------------------------------------------<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
Der einfache Aufruf des Objekt Navigators, mit
dem Transaktionskode SE80, sieht als
VBScript®-Datei wie oben gezeigt aus - hier mit
zusätzlichen Kommentaren zum besseren
Verständnis versehen.
Es wird die Scripting Engine einer bestehenden
SAP® GUI Instanz erfragt. Von ihr wird die
Verbindung (Connection) und der Modus
(Session) mit jeweils Null gesetzt. In diesem
Modus wird dem Kommandofeld der Text
/nSE80 übergeben und der Button Weiter der
ToolBar betätigt. Die Transaktion wird
ausgeführt und der Objekt Navigator gestartet.
An dieser Stelle können jetzt weitere erklärende
Elemente wie z.B. ToolTips und Wartezyklen
eingesetzt werden, um die Vorgehensweise
dem Betrachter transparent zu machen.
Um nun dieses Skript im HTML-Kontext zu
starten, muss der HTML-Rahmen etwas
modifiziert werden.
Die auffälligste Änderung ist die zusätzliche
Funktion GetCurrDir. Mit ihr wird das aktuelle
Verzeichnis der HTML-Datei ermittelt,
unabhängig davon, ob sie sich in einer CHMHilfe befindet oder nicht. Die Ermittlung des
Pfades ist wichtig, um die Ausführung des
Skriptes zu ermöglichen, da es sonst
Schwierigkeiten mit den Sicherheitseinstellungen des Internet Explorers® geben
könnte. Die Skript-Datei muss sich im gleichen
Verzeichnis wie die HTML-Datei bzw. OnlineHilfe befinden. In der Sub-Prozedur Test wird
eine Windows® Scripting Shell erzeugt und mit
der Methode Run das Skript ausgeführt.
An dieser Stelle sei noch der Hinweis
angebracht, dass mit dieser Vorgehensweise
nicht nur VBScript®-Dateien gestartet werden
können. Alle Dateien können über diesen Weg
gestartet werden - auch Programme. Dies
bedeutet, neben neuen Einsatzmöglichkeiten,
auch ein verändertes Risikopotential.
<title>
HTML-Test
</title>
<script type="text/VBScript">
<!-'-Function GetCurrentDirectory-----------------------Function GetCurrDir()
URL = CStr(window.location.href)
If LCase(Left(URL, 8)) = "file:///" Then
File = Right(URL, Len(URL) - 8)
GetCurrDir = Left(File, InStrRev(File, "/"))
ElseIf LCase(Left(URL, 14)) = "mk:@msitstore:" Then
File = Right(URL, Len(URL) - 14)
GetCurrDir = Left(File, InStrRev(File, "\"))
ElseIf LCase(Left(URL, 7)) = "ms-its:" Then
File = Right(URL, Len(URL) - 7)
GetCurrDir = Left(File, InStrRev(File, "\"))
End If
End Function
'-Sub Test-------------------------------------------Sub Test()
Set oShell = CreateObject("WScript.Shell")
oShell.run GetCurrDir() & "Script1.vbs"
End Sub
'-->
</script>
</head>
<body>
HTML-Test<br />
<form action="">
<input type="button" value="Starten" onclick="Test()">
</form>
</body>
</html>
Tricktresor
CHM-Verpackung
®
®
Online-Hilfen unter Microsoft Windows
bestehen meistens aus kompilierten HTMLDateien, die als CHM-Dateien bekannt sind.
Sie beinhalten im Normalfall alle notwendigen
Dateien, in diesem Beispiel
jedoch mit
Ausnahme der ausführbaren Skripte. Um eine
CHM-Datei zu erstellen, benötigt man den
Microsoft® HTML Help Workshop. Dabei
handelt es sich um ein Autorenwerkzeug mit
einer einfachen grafischen Benutzeroberfläche
zur Erstellung von Projekten, Indizes und
Inhaltsverzeichnissen, sowie einem Compiler
für die Generierung der Online-Hilfesysteme.
Der HTML Help Workshop kann von der
Microsoft® Homepage geladen und einfach
installiert werden. Er ist frei verfügbar. Nach der
Auswahl zur Erstellung eines neuen Projektes
wird man mit Dialogen durch die grundlegenden Einstellungen geführt.
"-Begin------------------------------------------------------Report zCallHelp.
"-Type-Pools-----------------------------------------------Type-Pools OLE2.
"-Main-----------------------------------------------------Perform CallHelp Using 'C:\Dummy\Test.chm'.
"-Form CallHelp--------------------------------------------Form CallHelp Using HelpFileName Type String.
"-Variables--------------------------------------------Data SAPGUI Type Ole2_Object.
Data Result Type Integer.
Create Object SAPGUI 'Sapgui.InfoCtrl.1'.
If SAPGUI-Handle > 0.
Call Method Of SAPGUI 'ShellExecute' = Result
Exporting #1 = 'open' #2 = HelpFileName #3 = ''
#4 = '' #5 = 1.
Free Object SAPGUI.
EndIf.
EndForm.
"-End---------------------------------------------------------
Zusammenfassung
Am Ende entsteht eine Projektdatei und nach
der Kompilierung liegt eine Online-Hilfe im
CHM-Format vor. Wird nun der Button Starten
betätigt, wird das Skript Script1.vbs ausgeführt
und damit im entsprechenden SAP®-Modus die
Transaktion SE80 ausgeführt.
®
ABAP ruft um Hilfe
Um nun mit ABAP® die Online-Hilfe zu starten,
bedienen wir uns der Funktion ShellExecute.
Mit dieser Funktion wird eine bestimmte
Operation, in unserem Fall open, mit der
benannten Datei, hier Test.chm, auf dem
Präsentationsserver durchgeführt. Die mit
dieser Datei verknüpften Anwendung HH.exe
(HTML Help executable) wird dabei
automatisch gestartet.
Wer nicht direkt die SAP® GUI COMImplementierung verwenden möchte, kann
dies auch über die Klasse
CL_GUI_FRONTEND_SERVICES und die
Methode EXECUTE vornehmen - jedoch läuft
es am Ende auf den gleichen Aufruf der COMFunktion hinaus.
Der in diesem Rahmen vorgestellte Ansatz
bietet einen geschlossenen Kreis zwischen
Programmfunktionen und Hilfeinformationen mit Hilfefunktionen zu
Programminformationen. Die Verbindungen zwischen Informationen im HTMLresp. CHM-Format, mit VB®-Skripten und
dem SAP® GUI Scripting, sowie ABAP®
zeigen andere Perspektiven der AnwenderUnterstützung.
Dies z.B. gerade bei Konfigurationsaktivitäten und Initialisierungsvorgängen,
die im Normalfall einmalig durchgeführt
werden, aber häufig viele Fragen beim
Anwender mit sich führen. Sicherlich
erfordert dies eine umfangreichere
integrative Denkweise und Zusammenarbeit bei der Erstellung oder der Pflege der
Online-Hilfen, dürfte aber den Mehrwert
für den Anwender beträchtlich erhöhen.
Daneben ist es denkbar, dass mit diesem Ansatz
der Bedarf weiterer Szenarien ebenfalls
abgedeckt werden kann, z.B. für Hands-OnSchulungen. Auch der In-House-Einsatz im
Bereich der Qualitätssicherung, z.B. zur
anwendungsspezifichen Initialisierung der
Testsysteme bzw. zur Unterstützung der Tester
könnte Potentiale bieten - der Phantasie sind
hier wenig Grenzen gesetzt.
Haben Sie Fragen, Anregungen oder Anmerkungen, so senden Sie einfach eine
E-Mail an [email protected].
Weitere Literatur
Microsoft HTML Help download
?
Hyper help project generator
?
Client is no detention
?