温馨提示:本文翻译自stackoverflow.com,查看原文请点击:其他 - Login to SAP session by Python
python sap sap-gui

其他 - 通过Python登录到SAP会话

发布于 2020-04-09 12:00:56

我使用此脚本登录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)

但是,它总是返回错误:

hostname 'PRD' unknown
check you application server name

有谁知道如何解决这个问题?谢谢

查看更多

提问者
Tommy Thang
被浏览
114
7,079 2020-02-02 18:02

变量Name必须是"PRD"(字符串本身必须包含双引号)。Python认为与之Name = """PRD"""相同,Name = "PRD"因此不正确,因为变量Name仅包含PRD(缺少双引号)。

因此,需要使用字符串反斜杠(Name = "\"PRD\""此处提到的其他可能性)来维护变量Name中的双引号。

完整的代码:

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)