Python中文
首页
教程
问答
标签
搜索
登录
注册
用于运行SAP事务的类“pywintypes.com\u error”
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在尝试使用Python脚本(Spyder)打开SAP并运行事务。为了实现这一目标,我录制了SAP vbscript,并对Python的使用进行了一些调整,直到它到达SAP脚本的中间并触发<code>class 'pywintypes.com_error'</code>! 我用于执行此任务的代码如下。非常感谢您对如何解决此问题的任何帮助:</p> <pre><code>def saplogin(): try: path = r"C:\Program Files (x86)\SAP\FrontEnd\SAPgui\saplogon.exe" subprocess.Popen(path) time.sleep(2) 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("SAP") 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 = "Uname" session.findById("wnd[0]/usr/pwdRSYST-BCODE").text = "Pass" session.findById("wnd[0]").sendVKey(0) session.findById("wnd[0]").resizeWorkingPane (98,16,False) session.findById("wnd[0]/tbar[0]/okcd").text = "S032" session.findById("wnd[0]").sendVKey (0) session.findById("wnd[0]/usr/radP_MATL").select session.findById("wnd[0]/usr/chkP_LTPC").selected = False session.findById("wnd[0]/usr/ctxtS_FEVOR-LOW").text = "86A" session.findById("wnd[0]/usr/radP_SORT3").setFocus session.findById("wnd[0]/usr/radP_SORT3").select session.findById("wnd[0]/tbar[1]/btn[8]").press session.findById("wnd[0]/mbar/menu[0]/menu[1]/menu[2]").select session.findById("wnd[1]/usr/subSUBSCREEN_STEPLOOP:SAPLSPO5:0150/sub:SAPLSPO5:0150/radSPOPLI-SELFLAG[1,0]").select session.findById("wnd[1]/usr/subSUBSCREEN_STEPLOOP:SAPLSPO5:0150/sub:SAPLSPO5:0150/radSPOPLI-SELFLAG[1,0]").setFocus session.findById("wnd[1]/tbar[0]/btn[0]").press session.findById("wnd[1]/usr/ctxtDY_PATH").text = "D:\PowerBIKhodam\WIP_Status\86A" session.findById("wnd[1]/usr/ctxtDY_FILENAME").text = "S32.xls" session.findById("wnd[1]/usr/ctxtDY_FILENAME").caretPosition = 12 session.findById("wnd[1]/tbar[0]/btn[11]").press session.findById("wnd[0]/tbar[0]/btn[3]").press session.findById("wnd[0]/tbar[0]/btn[3]").press except: print(sys.exc_info()[0]) finally: session = None connection = None application = None SapGuiAuto = None saplogin() </code></pre>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>不确定您是否尝试了此操作,但看起来您的连接名只是“SAP”。查看您的SAP登录板,并在那里获取完整的连接名称</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
无法使用Django/mongoengine连接到MongoDB(身份验证失败)
7 回答
无法使用Django\u mssql\u后端迁移到外部hos
10 回答
无法使用Django&Python3.4连接到MySql
2 回答
无法使用Django+nginx上载媒体文件
2 回答
无法使用Django1.6导入名称模式
4 回答
无法使用Django1.7和mongodb登录管理站点
1 回答
无法使用Djangoadmin创建项目,进程使用了错误的路径,因为我事先安装了错误的Python
6 回答
无法使用Djangockedi验证CBV中的字段
5 回答
无法使用Djangocketditor上载图像(错误400)
1 回答
无法使用Djangocron进行函数调用
1 回答
无法使用Djangofiler djang上载文件
1 回答
无法使用Djangokronos
1 回答
无法使用Djangomssql provid
3 回答
无法使用Djangomssql连接到带有Django 1.11的MS SQL Server 2016
9 回答
无法使用Djangomssq迁移Django数据库
2 回答
无法使用Djangonox创建用户
9 回答
无法使用Djangopyodb从Django查询SQL Server
10 回答
无法使用Djangopython3ldap连接到ldap
7 回答
无法使用Djangoredis连接到redis
7 回答
无法使用Django中的FK创建新表
1 回答