首页 > 解决方案 > 通过 Python 登录 SAP 会话

问题描述

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

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

标签: pythonsap-gui

解决方案


变量 Name 必须是"PRD"(字符串本身必须包含双引号)。Python 认为Name = """PRD"""相同,Name = "PRD"所以它是不正确的,因为变量 Name 将只包含PRD(缺少双引号)。

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

完整代码:

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)

推荐阅读