VBA Excel SSO到SAP /运行时错误70"访问被拒绝"

时间:2016-05-15 09:05:47

标签: excel vba excel-vba single-sign-on sap

我花了好几个小时才发现问题。 我想用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

2 个答案:

答案 0 :(得分:1)

检查特定系统(事务RZ11,参数sapgui/user_scripting)是否允许用户脚本编写。另请注意,对于某些版本,您显然需要指定SAP Logon条目文本而不是SID。

答案 1 :(得分:0)

感谢vwegert。

我当然知道需要在服务器上启用脚本。 也就是说,但是在我阅读他的回答时,我记得在我的SAP GUI设置中,启用了“如果脚本尝试连接时发出警告”的复选框。

禁止这些选择确实取得了成功。

以上代码完美无缺。