В настоящее время возникает проблема с ошибкой: при переносе заказов в SAP через VBA может потребоваться повторное подтверждение заказа. Тем не менее, это не всегда так.
Я уже встроил цикл ошибок в начале кода, поэтому я больше не получаю объектные ошибки. Тем не менее, я бы хотел, чтобы VBA ВЫБИРАЛ между 2 результатами.
Я собрал код (который приведет к переходу в следующий порядок, если возникнет ошибка):
'Press "full delivery (build a if function that if field delivery exists and is >1, press f6)
If Session.findById("wnd[0]/usr/tbl/SAPAPO/SAPLATP4CTR_FINAL/txt/SAPAPO/ATP4CSD-BMNGL[6,0]").Text <> ""
Then Session.findById("wnd[0]/tbar[1]/btn[6]").press
End If
Затем, если его нет на этом экране, он должен просто проверить, находится ли он на исходном экране:
if Session.findById("wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\01/ssubSUBSCREEN_BODY:SAPMV45A:4400/subSUBSCREEN_TC:SAPMV45A:4900/tblSAPMV45ATCTRL_U_ERF_AUFTRAG/ctxtVBAP-WERKS[11,0]").Text <>"" then
'Save order
Session.findById("wnd[0]/tbar[0]/btn[11]").press
End if
К сожалению, это вызывает ошибку, если она не переходит к экрану доставки (он просто остается на экране обычного заказа). То, что я хочу сделать, это пройти через код.
Есть ли способ, с помощью которого я могу определить, на каком экране я сейчас нахожусь, чтобы VBA предприняла какие-то действия.