我花了好几个小时才发现问题。 我想用ini文件启动SAP Logonpad,工作正常。 然后在绑定到脚本对象后,我想打开与特定系统的连接,连接= SapGui.OpenConnection(" SID",True) 但总是得到运行时错误70访问被拒绝。
我跟随其他人似乎对vbs所做的事情,对于某些我不能用vbs执行此操作并且必须使用vba,所以可能会有一些差异导致它失败?
任何建议都将受到高度赞赏。
Private Sub CommandButton1_Click()
Dim SapGui As Object
Dim saplogon As Object
Dim connection 'As Object
Set SapGui = GetObject("SAPGUI")
Dim Wshshell As Object
Set Wshshell = CreateObject("Wscript.Shell")
Wshshell.Run Chr(34) & ("C:\Program Files\SAPPC\FrontEnd\SAPgui
\saplogon.exe") & Chr(34) & " " & "/INI_FILE" & "=" & Chr(34) &
"\\longpathtoini\appl\Sap\saplogon\int\saplogon.ini" & Chr(34)
Do Until Wshshell.AppActivate("SAP Logon")
Application.Wait Now + TimeValue("0:00:01")
Loop
Set Wshell = Nothing
Set saplogon = SapGui.GetScriptingEngine
connection = SapGui.OpenConnection("SID", True)
Set SapGui = Nothing
Set saplogon = Nothing
Set connection = Nothing
End Sub
答案 0 :(得分:1)
检查特定系统(事务RZ11
,参数sapgui/user_scripting
)是否允许用户脚本编写。另请注意,对于某些版本,您显然需要指定SAP Logon条目文本而不是SID。
答案 1 :(得分:0)
感谢vwegert。
我当然知道需要在服务器上启用脚本。 也就是说,但是在我阅读他的回答时,我记得在我的SAP GUI设置中,启用了“如果脚本尝试连接时发出警告”的复选框。
禁止这些选择确实取得了成功。
以上代码完美无缺。