1) 首先必須設定SAP中設置可以使用SAP GUI Script.
#-Begin-----------------------------------------------------------------
#-Includes--------------------------------------------------------------
import sys, win32com.client
import win32api,win32gui,win32con,win32ui,time,os,subprocess
#-Sub Main--------------------------------------------------------------
def Main():
sap_app = r"C:\Program Files (x86)\SAP\FrontEnd\SAPgui\saplogon.exe" #您的saplogon程序本地完整路徑
subprocess.Popen(sap_app)
time.sleep(1)
flt=0
while flt==0:
try:
hwnd = win32gui.FindWindow(None,"SAP Logon 740")
flt=win32gui.FindWindowEx(hwnd,None,"Edit", None) #capture handle of filter
except:
time.sleep(0.5)
win32gui.SendMessage(flt,win32con.WM_SETTEXT,None,"DEV")
win32gui.SendMessage(flt,win32con.WM_KEYDOWN,win32con.VK_RIGHT,0)
win32gui.SendMessage(flt,win32con.WM_KEYUP,win32con.VK_RIGHT,0)
time.sleep(0.1)
dlg = win32gui.FindWindowEx(hwnd,None,"Button", None) #登陸(0)
win32gui.SendMessage(dlg,win32con.WM_LBUTTONDOWN,0)
win32gui.SendMessage(dlg,win32con.WM_LBUTTONUP,0)
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.Children(0)
if not type(connection) == win32com.client.CDispatch:
application = None
SapGuiAuto = None
return
time.sleep(2)
session = connection.Children(0)
if not type(session) == win32com.client.CDispatch:
connection = None
application = None
SapGuiAuto = None
return
print("OK")
session.findById("wnd[0]/usr/txtRSYST-BNAME").text = "XXXXXX" #此次放入您的SAP登陸用戶名
session.findById("wnd[0]/usr/pwdRSYST-BCODE").text = "xxxxxx" #此次放入您的SAP登陸密碼
session.findById("wnd[0]").sendVKey(0)
"""下面演示了使用mm03查看物料1000000000000的狀態後再退回sap首頁的過程"""
session.findById("wnd[0]/tbar[0]/okcd").text = "mm03"
session.findById("wnd[0]").sendVKey(0)
session.findById("wnd[0]/usr/ctxtRMMG1-MATNR").text = "180100069380"
session.findById("wnd[0]").sendVKey(0)
#session.findById("wnd[0]/tbar[0]/okcd").text = "/n"
#session.findById("wnd[0]").sendVKey(0)
#session.findById("wnd[0]/tbar[0]/btn[3]").press()
#session.findById("wnd[0]/tbar[0]/btn[3]").press()
#>Insert your SAP GUI Scripting code here<
#-Main------------------------------------------------------------------
if __name__ == "__main__":
Main()
#-End-------------------------------------------------------------------