问题描述
我正在尝试使用win32com与python建立到当前SAP会话的连接。 到目前为止,我发现的所有指南都使用“ saplogon.exe”来执行此操作,但是对于我们的系统,我们只能通过Sap Logon Pad(“ saplgpad.exe”)登录。任何文件夹中都不存在“ saplogon.exe”。
有人可以帮我解决我的情况吗?
使用“ saplogon.exe”的代码如下:
import win32com.client
import sys
import subprocess
import time
# This function will Login to SAP from the SAP Logon window
def saplogin():
try:
path = r"C:\Program Files (x86)\SAP\FrontEnd\SAPgui\saplogon.exe"
subprocess.Popen(path)
time.sleep(10)
SapGuiAuto = win32com.client.GetObject('SAPGUI')
if not type(SapGuiAuto) == win32com.client.CDispatch:
return
application = SapGuiAuto.GetScriptingEngine
if not type(application) == win32com.client.CDispatch:
SapGuiAuto = None
return
connection = application.OpenConnection("DCG210",True)
if not type(connection) == win32com.client.CDispatch:
application = None
SapGuiAuto = None
return
session = connection.Children(0)
if not type(session) == win32com.client.CDispatch:
connection = None
application = None
SapGuiAuto = None
return
session.findById("wnd[0]/usr/txtRSYST-BNAME").text = "USERNAME"
session.findById("wnd[0]/usr/pwdRSYST-BCODE").text = "PASSWORD"
session.findById("wnd[0]").sendVKey(0)
except:
print(sys.exc_info()[0])
finally:
session = None
connection = None
application = None
SapGuiAuto = None
saplogin()
到目前为止,唯一对我有用的是通过快捷方式登录,但是这样一来,我就不会为了进一步编写脚本而进入会话:
import subprocess
# logs into SAP with auto choosing of PROD environment.
subprocess.check_call(['C:\Program Files (x86)\SAP\FrontEnd\SAPgui\\sapshcut.exe','-system=PRD','-client=010','-user=XXXXXX','-pw=XXXXXX'])
也许有一种方法可以将这两种方法结合起来以使其正常工作吗?
非常感谢你们提供的任何帮助。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)