Как продолжить выполнение макроса VBA, когда всплывающее сообщение SAP сообщает нам, что данные не найдены? - PullRequest
0 голосов
/ 28 мая 2019

Когда скрипт sap ищет данные через SAP и ничего не находит, он отправляет нам всплывающее сообщение о том, что «он не нашел никаких данных», как сохранить макрос работающим, потому что позже появляются другие транзакции.

 Sub FOS()
 ...

On Error GoTo ConsoleAbs
Set Sapgui = GetObject("SAPGUI")
On Error GoTo 0

'transaction1
session.findById("wnd[0]").maximize
session.findById("wnd[0]/tbar[0]/okcd").Text = "S_ALR_87011964"
session.findById("wnd[0]/tbar[0]/btn[0]").press
session.findById("wnd[0]/usr/ctxtBUKRS-LOW").Text = "0092"
...


'transaction2

session.findById("wnd[0]").maximize
session.findById("wnd[0]/tbar[0]/okcd").Text = "S_ALR_87012039"
session.findById("wnd[0]/tbar[0]/btn[0]").press
...

End Sub

Я пытался

On Error GoTo ConsoleAbs
Set Sapgui = GetObject("SAPGUI")
On Error GoTo 0

, но я не уверен, что это правильное решение.

1 Ответ

2 голосов
/ 29 мая 2019

Вы можете попробовать следующее.

например:

Sub FOS()
Set SapGuiAuto = GetObject("SAPGUI")
Set SAP_Application = SapGuiAuto.GetScriptingEngine
Set Connection = SAP_Application.Children(0)
Set session = Connection.Children(0)

session.findById("wnd[0]").maximize
session.findById("wnd[0]/tbar[0]/okcd").Text = "/nS_ALR_87011964"
session.findById("wnd[0]").sendVKey 0
...
session.findById("wnd[0]/tbar[1]/btn[8]").press
If session.ActiveWindow.Name = "wnd[1]" Then
   If session.findById("wnd[1]").Text = "Information" Then session.findById("wnd[1]/tbar[0]/btn[0]").press
else
  'do something 
end if

session.findById("wnd[0]/tbar[0]/okcd").Text = "S_ALR_87012039"
session.findById("wnd[0]/tbar[0]/btn[0]").press
...
session.findById("wnd[0]/tbar[1]/btn[8]").press
If session.ActiveWindow.Name = "wnd[1]" Then
   If session.findById("wnd[1]").Text = "Information" Then session.findById("wnd[1]/tbar[0]/btn[0]").press
else
  'do something 
end if
End Sub

С уважением, ScriptMan

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...