我正在尝试使用Win32 COM通过python建立与当前SAP会话的连接。 到目前为止,我找到的所有指南都是使用“saplogon.exe”来实现这一点的,但对于我们的系统,我们只能通过Sap登录板(“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'])
有没有一种方法可以将这两种方法结合起来让它工作
非常感谢你们提供的帮助
目前没有回答
相关问题 更多 >
编程相关推荐