Остановить транзакцию в SAP с VBA - PullRequest
0 голосов
/ 04 июля 2018

У меня есть рабочий макрос VBA, который входит в SAP, запускает транзакцию и затем извлекает данные в электронную таблицу. Но иногда расчет выполняется слишком долго, или я просто хотел бы остановить его вмешательство. На панели инструментов в левом верхнем углу есть функция, где пользователь может вручную «остановить транзакцию». Существует ли какой-либо код сценария SAP для кнопки «Остановить транзакцию», чтобы я мог избежать ручного шага?

Панель инструментов SAP:

SAP toolbar

Спасибо за помощь!

1 Ответ

0 голосов
/ 10 июля 2018

Предполагается, что макрос VBA выполняется в первом сеансе. Если второй сеанс открывается перед запуском макроса, его можно использовать для закрытия первого сеанса.

например:

Set SapGuiAuto  = GetObject("SAPGUI")
Set SAPapp = SapGuiAuto.GetScriptingEngine
Set SAPconnection = SAPapp.Children(0)
Set session    = SAPconnection.Children(1)

session.findById("wnd[0]/tbar[0]/okcd").text = "/i1"
session.findById("wnd[0]").sendVKey 0
session.createSession

Application.Wait (Now + TimeValue("0:00:05"))

session.findById("wnd[0]/tbar[0]/okcd").text = "/i3"
session.findById("wnd[0]").sendVKey 0
session.createSession

Application.Wait (Now + TimeValue("0:00:05"))

Будет ли выполнен «откат» или нет, это будет проверкой.

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

...