2016-05-15 72 views
0

我花了几个小时发现问题。 我想用ini文件启动SAP Logonpad,可以正常工作。 然后绑定到脚本对象后,我想打开连接到具有connection = SapGui.OpenConnection(“SID”,True) 的特定系统,但始终会使运行时错误70访问被拒绝。VBA Excel SSO到SAP /运行时错误70“访问被拒绝”

我跟着别人似乎做的与vbs,某些resons我不能用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 

回答

1

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

+0

服务器上的脚本处于活动状态。我只是取消了SAP Gui的设置来警告脚本是否连接。奇怪的是,它只打开了一次SAP系统登录屏幕。现在我得到运行时错误438对象不支持这个属性或方法。 – JonSnow

0

感谢vwegert。

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

放弃选项确实导致成功。

上面的代码完美地工作。

相关问题