SAP Jobsuche bei DV-Treff
Hanglooseair
vor 11 Jahre
Hallo SAP-Tüftler,

ich habe begeistert den Eintrag von ScriptMan übe die Verwendung von VBScripts für SAP gelesen!

Ich habe daraufhin schon fleißig VBScripts mittels dem Recorder aufgenommen und diese angepasst.

Ich verwende derzeit folgendes Logon, dass durch den Script-Recorder aufgezeichnet wurde:

If Not IsObject(application) Then

Set SapGuiAuto = GetObject("SAPGUI")

Set application = SapGuiAuto.GetScriptingEngine

End If

If Not IsObject(connection) Then

Set connection = application.Children(0)

End If

If Not IsObject(session) Then

Set session = connection.Children(0)

End If

If IsObject(WScript) Then

WScript.ConnectObject session, "on"

WScript.ConnectObject application, "on"

End If

Das funktioniert wunderbar wenn man bereits bei SAP eingelogt ist und nur eine Session offen ist. Sobald aber eine weitere aktiv ist oder man nicht in SAP eingeloggt ist funktioniert das Skript leider nicht.

Ich würde deshalb gerne den Code anpassen, dass die aktuelle Session genutzt wird, die den aktiv ist.

http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/e00d6fd4-eaf4-2a10-90a5-db931026edc8?QuickLink=index&overridelayout=true&27801323333531  gelesen, dass dies via session.children.count möglich sein soll.

Wenn ich allerdings via

"if session.children.count > 1 then" gehe erhalte ich immer die Fehlermeldung "Object session required" da session noch nicht definiert wurde.

Könnt ihr mir weiterhelfen?

Vielen herzlichen schon einmal vorab!!

Beste Grüße,

Peter

ScriptMan
vor 11 Jahre
Hallo Peter,

es freut mich zu lesen, dass sich jemand für meine Beiträge im Forum interesiert.

Bevor ich auf deine Frage eingehen kann, muss ich wissen, wie du die VB-Skripte startest, die den aktuellen SAP Modus nutzen sollen? Aus SAP GUI heraus oder aus dem Windows Explorer oder ...

Freundliche Grüße

ScriptMan

newgui
vor 11 Jahre
Hallo Peter,

habe etwas ähnliches bei uns umgesetzt, allerdings in Verbindung mit guixt und für mehrere User. Logon-Pad muss allerdings manuell gestartet werden.

Über das logon script von guixt wird das jew. autologin-script gestartet.

start "C:\Users\Benutzername1\autologin.vbs"

on error resume next

start "C:\Users\Benutzername2\autologin.vbs"

on error resume next

usw.

Wenn nichts gefunden wird muss man sich normal anmelden.

Das autologin.vbs Script sieht nun folgendermaßen aus.

If Not IsObject(application) Then

Set SapGuiAuto = GetObject("SAPGUI")

Set application = SapGuiAuto.GetScriptingEngine

End If

If Not IsObject(connection) Then

Set connection = application.Children(0)

End If

If Not IsObject(session) Then

Set session = connection.Children(0)

End If

If IsObject(WScript) Then

WScript.ConnectObject session, "on"

WScript.ConnectObject application, "on"

End If

session.findById("wnd[0]").maximize

session.findById("wnd[0]/usr/txtRSYST-BNAME").text = "User"

session.findById("wnd[0]/usr/pwdRSYST-BCODE").text = "Password"

session.findById("wnd[0]/usr/pwdRSYST-BCODE").setFocus

session.findById("wnd[0]/usr/pwdRSYST-BCODE").caretPosition = 8

session.findById("wnd[0]").sendVKey 0

@scrptman - ich glaube, dass sich sehr viele für deine Beiträge interessieren - ich hab zumindest schon einiges daraus benötigen können

mfg

newgui