Python 连接 SAP

高龄转行做计划,被安排做SAP的日常各种手作。

烦躁得不行,恶心得要死。

然而,姐也不是认命的人。

在一个周天下午,葛优躺中,灵光一现。

于是,查到了用python控制SAP的代码。

从此,姐又成了那个抱着咖啡杯,找人聊天的姐。

# 除了你其它用于python代码需要的库以外,以下库也将是你之后操作SAP会需要的库
# 嗯,正则嘛,我还不懂

import win32com
import sys
import win32com.client
import re
import win32api,win32gui,win32con,win32ui,os,subprocess
sap_app = r"C:\Program Files (x86)\SAP\FrontEnd\SAPgui\saplogon.exe"
subprocess.Popen(sap_app)

time.sleep(1) #速度慢一点,因为偶尔SAP会反应不过来

flt=0
while flt==0:
    try:
        hwnd = win32gui.FindWindow(None,"SAP Logon 740")  #如果你的SAP升级了,那么这里你也可以换成,比如 SAP Logon 770
        flt=win32gui.FindWindowEx(hwnd,None,"Edit", None) 
    except:
        time.sleep(0.5)
win32gui.SendMessage(flt,win32con.WM_SETTEXT,None,"ERP_Production") #这里你可以搜索你要进入的SAP function
win32gui.SendMessage(flt,win32con.WM_KEYDOWN,win32con.VK_RIGHT,0)
win32gui.SendMessage(flt,win32con.WM_KEYUP,win32con.VK_RIGHT,0)

time.sleep(1)

dlg = win32gui.FindWindowEx(hwnd,None,"Button", None)
win32gui.SendMessage(dlg,win32con.WM_LBUTTONDOWN,0)
win32gui.SendMessage(dlg,win32con.WM_LBUTTONUP,0)

SapGuiAuto = win32com.client.GetObject("SAPGUI")
application = SapGuiAuto.GetScriptingEngine
connection = application.Children(0)
    
flag=0
while flag==0:
    try:
        session = connection.Children(0)
        flag=1
    except:
        time.sleep(0.5)

session.findById("wnd[0]/usr/txtRSYST-BNAME").text = "你的SAP账号" 
session.findById("wnd[0]/usr/pwdRSYST-BCODE").text = "你的SAP密码"
session.findById("wnd[0]").sendVKey(0)

本来,公司SAP没有升级的时候,这段代码(也是百度了很多地方,在此感恩百度上分享知识的各位)带给我无数欢快。

产假一回来,妈呀,升级了。额,740 到 770。

然而,不过是多sleep两下。

明天再更新了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值