Verwendung von SAP GUI Scripting in der Windows PowerShell

Mit dem Einsatz von Microsoft Windows 7 im Business Umfeld bietet sich auch die Möglichkeit die PowerShell zu nutzen. Bei der PowerShell handelt es sich um eine Kommandozeilen-Shell und Skript-Sprache, als Ersatz von CMD und WSH. Im folgenden Beispiel wird eine mögliche Nutzung von SAP GUI Scripting im Kontext der PowerShell demonstriert.

Mit Einzug von Windows 7 im Business Umfeld bietet sich nun die Möglichkeit der Nutzung der PowerShell für die Automatisierung, als Ersatz für die CMD-Kommandozeile und des WSH (Windows Scripting Host). Weitere Informationen zur PowerShell können hier eingesehen werden: http://technet.microsoft.com/en-us/library/bb978526.aspx.
Im folgenden Code-Beispiel, welches die Transaktion SE16 aufruft und die Tabelle USR01 zur Anzeige bringt, soll kurz demonstriert werden, wie SAP GUI Scripting in die PowerShell integriert werden kann.

Der SAP GUI Scripting Code wurde direkt aus dem SAP GUI Scripting Rekorder übernommen. Aus Übersichtsgründen wurden lediglich die Abfragen der Objektexistenzen entfernt und die Erzeugung des Event-Handlings. Weiterhin sind noch einige Modifikationen am Code notwendig. Das Anführungszeichen ” muss durch `” ersetzt werden und das Zeilenende mit `n. Das Apostroph kann mit Alt+096 erzeugt werden. So kann der Code in der PowerShell mit der Taste F5 zur Ausführung gebracht werden.

#-Begin—————————————————————–

  $VB = New-Object -COMObject MSScriptControl.ScriptControl
 
$Cmd = @”
Set SapGuiAuto = GetObject(`”SAPGUI`”)`n
Set application = SapGuiAuto.GetScriptingEngine`n
Set connection = application.Children(0)`n
Set session = connection.Children(0)`n
session.findById(`”wnd[0]/tbar[0]/okcd`”).text = `”/nse16`”`n
session.findById(`”wnd[0]/tbar[0]/btn[0]`”).press`n
session.findById(`”wnd[0]/usr/ctxtDATABROWSE-TABLENAME`”).text = `”USR01`”`n
session.findById(`”wnd[0]/tbar[1]/btn[7]`”).press`n
session.findById(`”wnd[0]/tbar[1]/btn[8]`”).press`n
“@
 
  $VB.Language = “VBScript”
  $VB.AllowUI = $TRUE
  $VB.ExecuteStatement($Cmd)

#-End——————————————————————-

Der automatisch erzeugte Code des SAP GUI Scripting Rekorders fügt sich nahtlos in das PowerShell-Scripting ein. Mit den Möglichkeiten der PowerShell, z.B. durch Zugriffe auf dynamische Bibliotheken und den Klassen des dotNET Framework, eröffnen sich so ganz neue Perspektiven der SAP GUI Scripting Integration in lokale Automatisierungsprozesse.

Letzte Artikel von Stefan Schnell (Alle anzeigen)