Добрый день, я новичок в SAP и недавно открыл для себя возможность работы с макросами. Прошу помочь разобраться в самых простых нюансах на примере.
Работаю на руднике, имеется парк самоходной техники, который делится на 2 категории:
1) Старая техника (при создании заказов проблем не возникает)
2) Новая техника на гарантии (при создании заказа появляется окно с предупреждением о том, что машина на гарантии, которое нужно закрыть, и дальше все стандартно).
Если записать макрос на гарантийной машине, то, когда очередь доходит до старой машины, выскакивает ошибка на моменте, где должно появиться окно предупреждения о гарантии.
Как можно обойти эту ошибку?
Прошу прощения за глупые вопросы, я понимаю что вы тут решаете намного глобальнее вопросы.
Code:
If Not IsObject(application) Then
Set SapGuiAuto = GetObject("SAPGUI")
Set application = SapGuiAuto.GetScriptingEngine
End If
If Not IsObject(connection) Then
Set connection = application.Children(0)
End If
If Not IsObject(session) Then
Set session = connection.Children(0)
End If
If IsObject(WScript) Then
WScript.ConnectObject session, "on"
WScript.ConnectObject application, "on"
End If
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open ("C:\!!_Планирование 2020\СХО сервисные контракты 2020\Подряд 2020 27-11-19 14-51-46\гарантия.xlsx")
intRow = 2
Do Until objExcel.Cells(intRow,1).Value = ""
session.findById("wnd[0]").maximize
session.findById("wnd[0]/tbar[0]/okcd").text = "/niw31"
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/usr/ctxtAUFPAR-PM_AUFART").text = "1017"
session.findById("wnd[0]/usr/cmbCAUFVD-PRIOK").key = "3"
session.findById("wnd[0]/usr/subOBJECT:SAPLCOIH:7100/ctxtCAUFVD-EQUNR").text = objExcel.Cells(intRow, 3).Value
session.findById("wnd[0]/usr/subOBJECT:SAPLCOIH:7100/ctxtCAUFVD-EQUNR").setFocus
session.findById("wnd[0]/usr/subOBJECT:SAPLCOIH:7100/ctxtCAUFVD-EQUNR").caretPosition = 8
session.findById("wnd[0]").sendVKey 0
[color=#FF0000]session.findById("wnd[1]/tbar[0]/btn[0]").press / ВОТ ЭТА СТРОЧКА ЗАКРЫВАЕТ ОКНО ГАРАНТИИ[/color]
session.findById("wnd[0]/usr/subSUB_ALL:SAPLCOIH:3001/ssubSUB_LEVEL:SAPLCOIH:1100/subSUB_KOPF:SAPLCOIH:1102/txtCAUFVD-KTEXT").text = objExcel.Cells(intRow, 4).Value
session.findById("wnd[0]/usr/subSUB_ALL:SAPLCOIH:3001/ssubSUB_LEVEL:SAPLCOIH:1100/tabsTS_1100/tabpIHKZ/ssubSUB_AUFTRAG:SAPLCOIH:1120/subHEADER:SAPLCOIH:0154/ctxtCAUFVD-VAPLZ").text = "P0202301"
session.findById("wnd[0]/usr/subSUB_ALL:SAPLCOIH:3001/ssubSUB_LEVEL:SAPLCOIH:1100/tabsTS_1100/tabpIHKZ/ssubSUB_AUFTRAG:SAPLCOIH:1120/subHEADER:SAPLCOIH:0154/ctxtCAUFVD-ILART").text = objExcel.Cells(intRow, 5).Value
session.findById("wnd[0]/usr/subSUB_ALL:SAPLCOIH:3001/ssubSUB_LEVEL:SAPLCOIH:1100/tabsTS_1100/tabpIHKZ/ssubSUB_AUFTRAG:SAPLCOIH:1120/subTERM:SAPLCOIH:7300/ctxtCAUFVD-GSTRP").text = objExcel.Cells(intRow, 2).Value
session.findById("wnd[0]/usr/subSUB_ALL:SAPLCOIH:3001/ssubSUB_LEVEL:SAPLCOIH:1100/tabsTS_1100/tabpIHKZ/ssubSUB_AUFTRAG:SAPLCOIH:1120/subTERM:SAPLCOIH:7300/ctxtCAUFVD-GLTRP").text = objExcel.Cells(intRow, 2).Value
session.findById("wnd[0]/usr/subSUB_ALL:SAPLCOIH:3001/ssubSUB_LEVEL:SAPLCOIH:1100/tabsTS_1100/tabpIHKZ/ssubSUB_AUFTRAG:SAPLCOIH:1120/subAVO:SAPLCOI0:0310/ctxtAFVGD-ARBPL").text = "P0202301"
session.findById("wnd[0]/usr/subSUB_ALL:SAPLCOIH:3001/ssubSUB_LEVEL:SAPLCOIH:1100/tabsTS_1100/tabpIHKZ/ssubSUB_AUFTRAG:SAPLCOIH:1120/subAVO:SAPLCOI0:0310/ctxtAFVGD-STEUS").text = "PM02"
session.findById("wnd[0]/usr/subSUB_ALL:SAPLCOIH:3001/ssubSUB_LEVEL:SAPLCOIH:1100/tabsTS_1100/tabpIHKZ/ssubSUB_AUFTRAG:SAPLCOIH:1120/subAVO:SAPLCOI0:0310/ctxtAFVGD-STEUS").setFocus
session.findById("wnd[0]/usr/subSUB_ALL:SAPLCOIH:3001/ssubSUB_LEVEL:SAPLCOIH:1100/tabsTS_1100/tabpIHKZ/ssubSUB_AUFTRAG:SAPLCOIH:1120/subAVO:SAPLCOI0:0310/ctxtAFVGD-STEUS").caretPosition = 4
session.findById("wnd[0]/usr/subSUB_ALL:SAPLCOIH:3001/ssubSUB_LEVEL:SAPLCOIH:1100/tabsTS_1100/tabpMUEB").select
session.findById("wnd[0]/usr/subSUB_ALL:SAPLCOIH:3001/ssubSUB_LEVEL:SAPLCOIH:1107/tabsTS_1100/tabpMUEB/ssubSUB_AUFTRAG:SAPLCOMK:3020/tblSAPLCOMKTCTRL_3020/ctxtRESBD-MATNR[1,0]").text = objExcel.Cells(intRow, 7).Value
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[1]").sendVKey 0
session.findById("wnd[2]").sendVKey 0
session.findById("wnd[1]/usr/subMAT_DETAIL_EXTERN:SAPLCOMD:3170/txtRESBD-MENGE").text = objExcel.Cells(intRow, 8).Value
session.findById("wnd[1]/usr/subMAT_DETAIL_EXTERN:SAPLCOMD:3170/txtRESBD-GPREIS").text = "1"
session.findById("wnd[1]/usr/subMAT_DETAIL_EXTERN:SAPLCOMD:3170/ctxtRESBD-WAERS").text = "usd"
session.findById("wnd[1]/usr/subMAT_DETAIL_EXTERN:SAPLCOMD:3170/ctxtRESBD-WAERS").setFocus
session.findById("wnd[1]/usr/subMAT_DETAIL_EXTERN:SAPLCOMD:3170/ctxtRESBD-WAERS").caretPosition = 3
session.findById("wnd[1]").sendVKey 0
session.findById("wnd[0]/usr/subSUB_ALL:SAPLCOIH:3001/ssubSUB_LEVEL:SAPLCOIH:1107/tabsTS_1100/tabpMUEB/ssubSUB_AUFTRAG:SAPLCOMK:3020/tblSAPLCOMKTCTRL_3020/ctxtRESBD-MATNR[1,1]").text = objExcel.Cells(intRow + 1, 7).Value
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[1]").sendVKey 0
session.findById("wnd[2]").sendVKey 0
session.findById("wnd[1]/usr/subMAT_DETAIL_EXTERN:SAPLCOMD:3170/txtRESBD-MENGE").text = objExcel.Cells(intRow + 1, 8).Value
session.findById("wnd[1]/usr/subMAT_DETAIL_EXTERN:SAPLCOMD:3170/txtRESBD-GPREIS").text = "1"
session.findById("wnd[1]/usr/subMAT_DETAIL_EXTERN:SAPLCOMD:3170/ctxtRESBD-WAERS").text = "usd"
session.findById("wnd[1]/usr/subMAT_DETAIL_EXTERN:SAPLCOMD:3170/ctxtRESBD-WAERS").setFocus
session.findById("wnd[1]/usr/subMAT_DETAIL_EXTERN:SAPLCOMD:3170/ctxtRESBD-WAERS").caretPosition = 3
session.findById("wnd[1]").sendVKey 0
session.findById("wnd[0]/usr/subSUB_ALL:SAPLCOIH:3001/ssubSUB_LEVEL:SAPLCOIH:1107/subSUB_KOPF:SAPLCOIH:1108/btn%#AUTOTEXT001").press
session.findById("wnd[1]/usr/tblSAPLBSVATC_E/radJ_STMAINT-ANWS[0,2]").selected = true
session.findById("wnd[1]/usr/tblSAPLBSVATC_E/radJ_STMAINT-ANWS[0,2]").setFocus
session.findById("wnd[1]/tbar[0]/btn[0]").press
session.findById("wnd[0]/tbar[0]/btn[11]").press
IntRow = intRow + 2
Loop
objExcel.Quit