2016-11-09 4 views
0

Возможно, кто-то, кто имеет опыт работы с SAP GUI и VBScripts, может мне помочь.Сценарии SAP GUI VBScript не работают

Я пытаюсь выполнить следующую VBScript в SAP GUI

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 
session.findById("wnd[0]").maximize 
session.findById("wnd[0]/tbar[0]/okcd").text="cv04n" 
session.findById("wnd[0]").sendVkey 0 

Я получаю ошибку : сервер выдал исключение. Код: 80010105

Эта ошибка в этой строке: session.findById ("WND [0]") максимально

Может сервер блокировать мои сценарии.?

Сценарии SAPGUI включены в конфигурации GUI SAP, но когда я пытаюсь записать его, он не записывается, а символ в окне всегда говорит, что скрипт работает, но ничего не происходит и ничего не записывает файл .vbs. Когда я пытаюсь запустить мой скрипт внутри графического интерфейса, это произойдет, и он будет работать, но ничего не произойдет.

спасибо.

+0

Возможный дубликат [HRESULT: 0x80010105 (RPC \ _E \ _SERVERFAULT) вопрос] (http://stackoverflow.com/questions/973206/hresult-0x80010105-rpc-e-serverfault -question) – Lankymart

+0

Как я могу узнать, что вызывает эту ошибку? – user3452550

+0

Возможно, это поможет - [Ошибка 0x80010105 (RPC_E_SERVERFAULT) с использованием SAP Scripting API] (https://archive.sap.com/discussions/thread/3824444) – Lankymart

ответ

0

Это:

Set application = SapGuiAuto.GetScriptingEngine 

Из-за этого, вы никогда не сможете получить скриптовый движок SAP, «Application» относится к Excel, Вы не можете установить его на внешнее приложение.

Изменить это:

Set sapapplication = SapGuiAuto.GetScriptingEngine 

Позвольте мне привести вам пример Полный код:

Set sapguiauto = GetObject("SAPGUI") 
    Set sapapplication = sapguiauto.GetScriptingEngine 
    Set connection = sapapplication.Children(0) 
    Set session = connection.Children(0) 

Теперь у вас есть SAP Session. Сделайте что-нибудь с этим.

Как:

session.findById("wnd[0]/sbar").Text 
session.findById("wnd[0]").maximize 
session.findById("wnd[0]/tbar[0]/okcd").text="cv04n" 
session.findById("wnd[0]").sendVkey 0 
Смежные вопросы