通过 Python 登录到 SAP 会话
Login to SAP session by Python
我使用此脚本登录 SAP 会话:
from subprocess import call
import win32com.client
import time
import os
GUIPath = 'C:/Program Files (x86)/SAP/FrontEnd/SAPgui/'
WinTitle = 'SAP'
Name = """PRD"""
SID = 'PRD'
InstanceNo = '01'
shell = win32com.client.Dispatch("WScript.Shell")
call(os.path.join(GUIPath, 'SAPgui.exe') + " " + Name + " " + InstanceNo)
然而,它总是 return 并出现错误:
hostname 'PRD' unknown
check you application server name
有人知道如何解决这个问题吗?
谢谢
变量名称需要是"PRD"
(字符串本身必须包含双引号)。 Python 认为 Name = """PRD"""
与 Name = "PRD"
相同,所以它是不正确的,因为变量名称将只包含 PRD
(缺少双引号)。
因此,需要使用字符串反斜杠(Name = "\"PRD\""
或提到的其他可能性here)来维护变量名称中的双引号。
完整代码:
from subprocess import call
import win32com.client
import time
import os
GUIPath = 'C:/Program Files (x86)/SAP/FrontEnd/SAPgui/'
WinTitle = 'SAP'
Name = "\"PRD\""
SID = 'PRD'
InstanceNo = '01'
shell = win32com.client.Dispatch("WScript.Shell")
call(os.path.join(GUIPath, 'SAPgui.exe') + " " + Name + " " + InstanceNo)
使用这个简单的单线连接:
import subprocess
subprocess.check_call(['C:\Program Files (x86)\SAP\FrontEnd\SAPgui\sapshcut.exe', '-system=DCG210', '-client=100', '-user=USERNAME', '-pw=PASSWORD'])
您应该使用 subprocess
模块而不是 os.call
,现在是 preferred。
我使用此脚本登录 SAP 会话:
from subprocess import call
import win32com.client
import time
import os
GUIPath = 'C:/Program Files (x86)/SAP/FrontEnd/SAPgui/'
WinTitle = 'SAP'
Name = """PRD"""
SID = 'PRD'
InstanceNo = '01'
shell = win32com.client.Dispatch("WScript.Shell")
call(os.path.join(GUIPath, 'SAPgui.exe') + " " + Name + " " + InstanceNo)
然而,它总是 return 并出现错误:
hostname 'PRD' unknown
check you application server name
有人知道如何解决这个问题吗? 谢谢
变量名称需要是"PRD"
(字符串本身必须包含双引号)。 Python 认为 Name = """PRD"""
与 Name = "PRD"
相同,所以它是不正确的,因为变量名称将只包含 PRD
(缺少双引号)。
因此,需要使用字符串反斜杠(Name = "\"PRD\""
或提到的其他可能性here)来维护变量名称中的双引号。
完整代码:
from subprocess import call
import win32com.client
import time
import os
GUIPath = 'C:/Program Files (x86)/SAP/FrontEnd/SAPgui/'
WinTitle = 'SAP'
Name = "\"PRD\""
SID = 'PRD'
InstanceNo = '01'
shell = win32com.client.Dispatch("WScript.Shell")
call(os.path.join(GUIPath, 'SAPgui.exe') + " " + Name + " " + InstanceNo)
使用这个简单的单线连接:
import subprocess
subprocess.check_call(['C:\Program Files (x86)\SAP\FrontEnd\SAPgui\sapshcut.exe', '-system=DCG210', '-client=100', '-user=USERNAME', '-pw=PASSWORD'])
您应该使用 subprocess
模块而不是 os.call
,现在是 preferred。