问题描述
我想使用Excel VBA创建到SAP的静默SAP.FUNCTIONS连接。每当我设置密码时,连接对象都会被破坏。这有可能吗?
Sub Connect_to_SAP()
Dim myConnection As Object
Set myConnection = CreateObject("SAP.Functions.unicode")
With myConnection
.Connection.System = "SID" 'Systemname
.Connection.client = "800" 'Client
.Connection.APPLICATIONSERVER = "192.111.222.333"
.Connection.user = "MYUSERNAME" 'User
.Connection.Password = "MYPASSWORD" ' <=== after that,myConnection.connection object is trashed
.Connection.Language = "EN" 'Language
.Connection.systemnumber = "00" 'Systemnumber
End With
'Establish connection.
If myConnection.Connection.logon(0,True) <> True Then Exit Sub
'System Logoff
myConnection.Connection.LOGOFF
End Sub
注意:这是在SAPGUI 7.6 pl4下。我们正在使用MYSAPSSO票证(门户SSO)通过7.60 pl6连接到SAP。
解决方法
为了测试静默连接是否在7.60 pl4下正常工作,这是我的步骤。
- 使用标准的SAP登录对话框(也称为“大声”)进行连接。 .Logon(0,False)
- 创建一个新的连接对象,并将其设置为打开的连接。
- 退出第一个(大声连接)并将其设置为空。
- 填充新连接(包括大声登录的加密密码)后,我只需执行.Logon(0,True)即可测试无提示登录。
这很好。它仍然无法提供任何将用户的密码字符串直接转换为SAP所需的加密密码的方法。尽管如此,这确实证明了无提示登录确实可以在7.50+以上的环境下正常工作,这是我的最初目标。