SAP自动化-ME12批量更新某行价格
Python源码
#-Begin-----------------------------------------------------------------#-Includes--------------------------------------------------------------
import sys, win32com.client
import os#-Sub Main--------------------------------------------------------------
def Main():try:SapGuiAuto = win32com.client.GetObject("SAPGUI")if not type(SapGuiAuto) == win32com.client.CDispatch:returnapplication = SapGuiAuto.GetScriptingEngineif not type(application) == win32com.client.CDispatch:SapGuiAuto = Nonereturnconnection = application.Children(0)if not type(connection) == win32com.client.CDispatch:application = NoneSapGuiAuto = Nonereturnif connection.DisabledByServer == True:application = NoneSapGuiAuto = Nonereturnsession = connection.Children(0)if not type(session) == win32com.client.CDispatch:connection = Noneapplication = NoneSapGuiAuto = Nonereturnif session.Info.IsLowSpeedConnection == True:connection = Noneapplication = NoneSapGuiAuto = Nonereturn#>Insert your SAP GUI Scripting code here<session.findById("wnd[0]").maximize()session.findById("wnd[0]/tbar[0]/okcd").text = "ME12"session.findById("wnd[0]").sendVKey(0)os.chdir(r'C:\Users\admin\PycharmProjects\pythonProject')fi = open("ME12.txt")for i in fi:i = i.split()# print(i)session.findById("wnd[0]/usr/ctxtEINA-LIFNR").text = "KB01"#供应商session.findById("wnd[0]/usr/ctxtEINA-MATNR").text = i[0]#物料session.findById("wnd[0]/usr/ctxtEINE-EKORG").text = "8010"#采购组织session.findById("wnd[0]/usr/ctxtEINE-WERKS").text = "8000"#工厂session.findById("wnd[0]/usr/ctxtEINE-EKORG").setFocus()session.findById("wnd[0]/usr/ctxtEINE-EKORG").caretPosition = 4session.findById("wnd[0]").sendVKey(0)session.findById("wnd[0]/tbar[1]/btn[8]").press()session.findById("wnd[1]/tbar[0]/btn[0]").press()no = int(i[1]) - 1#获取第几行的信息session.findById("wnd[0]/usr/tblSAPMV13ATCTRL_D0201").getAbsoluteRow(no).selected = -1#获取第几行的信息session.findById("wnd[0]/usr/tblSAPMV13ATCTRL_D0201/ctxtKONP-KSCHL[0,1]").setFocus()session.findById("wnd[0]/usr/tblSAPMV13ATCTRL_D0201/ctxtKONP-KSCHL[0,1]").caretPosition = 0session.findById("wnd[0]").sendVKey(6)session.findById("wnd[0]/usr/txtKONP-KBETR").text = "1600"#价格session.findById("wnd[0]/usr/txtKONP-KBETR").caretPosition = 16session.findById("wnd[0]").sendVKey(0)session.findById("wnd[0]/tbar[0]/btn[11]").press()except:print(sys.exc_info()[0])finally:session = Noneconnection = Noneapplication = NoneSapGuiAuto = None#-Main------------------------------------------------------------------
Main()#-End-------------------------------------------------------------------
数据模板
import osos.chdir(r'C:\Users\admin\PycharmProjects\pythonProject')
fi = open("ME12.txt")
for i in fi:i = i.split()print(i)
物料编码,条件序列号,价格
['3000000', '2', '120']
['3000001', '3', '130']
注意事项
1、仅限于正对SAP日常工作的批量处理
2、需要管理员授权RZ11脚本录制回放功能
3、数据模板按实际需求更新