Visual Basic和SAP脚本GUI

2020-09-06 05:55发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我正在使用VBA自动化SAP程序...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我正在使用VBA自动化SAP程序。

我使用SAP脚本记录了一些代码。 现在,我可以打开六个会话(SAP窗口),并在每个会话中放入一些数据。

我无法并行执行这些会话(一次运行所有会话)。 你能帮我吗?

谢谢,卢克

4条回答
d56caomao
2020-09-06 06:14

嗨,Luc,

以下示例可能会对您有所帮助:

Script_parallel_sessions.vbs:

如果不是IsObject(application)那么

设置SapGuiAuto = GetObject(" SAPGUI")

设置应用程序= SapGuiAuto.GetScriptingEngine

如果结束

如果不是IsObject(连接),则

设置连接= application.Children(0)

如果结束

如果不是IsObject(session)那么

设置会话= connection.Children(0)

如果结束

对于mysession = 0到5

设置会话= connection.Children(int(mysession))

session.findById(" wnd [0]")。maximize

session.findById(" wnd [0]/tbar [0]/okcd")。text ="/img/nreiscn"

session.findById(" wnd [0]")。sendVKey 0

session.findById(" wnd [0]/usr/ctxtS_BUKRS-LOW")。text =" 2000"

session.findById(" wnd [0]/usr/chkP_USEPTN")。setFocus

session.findById(" wnd [0]/usr/chkP_USEPTN")。selected = true

session.findById(" wnd [0]/usr/chkP_GRID")。selected = true

session.findById(" wnd [0]/usr/chkP_DSPBUP")。selected = true

session.findById(" wnd [0]/usr/ctxtSO_PARTN-LOW")。text =" 1"

session.findById(" wnd [0]/usr/ctxtSO_PARTN-HIGH")。text =" 1000"

session.findById(" wnd [0]/usr/chkP_DSPBUP")。setFocus

如果mysession <5,则为session.createSession

wscript.sleep 2000

'session.findById(" wnd [0]/tbar [1]/btn [8]")。按

'msgbox"会话:"&mysession&vbcr&"时间:"&时间,vbInformation + vbMsgBoxForeground,"注释"

set wshell = createobject(" Wscript.Shell")

wshell.run""" c:\ tmp \ Script_parallel_Sessions_1.vbs"""&""和mysession

下一个

Script_parallel_sessions_1.vbs:

如果不是IsObject(application)那么

设置SapGuiAuto = GetObject(" SAPGUI")

设置应用程序= SapGuiAuto.GetScriptingEngine

如果结束

如果不是IsObject(连接),则

设置连接= application.Children(0)

如果结束

对于mysession = 0到5

如果cstr(mysession)= cstr(wscript.arguments(0)),那么

设置会话= connection.Children(int(mysession))

session.findById(" wnd [0]/tbar [1]/btn [8]")。按

msgbox"会话:"和mysession&vbcr和"时间:"和时间,vbInformation + vbMsgBoxForeground,"注释"

如果结束

下一个


Script_seriell_sessions.vbs:

如果不是IsObject(application)那么

设置SapGuiAuto = GetObject(" SAPGUI")

设置应用程序= SapGuiAuto.GetScriptingEngine

如果结束

如果不是IsObject(连接),则

设置连接= application.Children(0)

如果结束

如果不是IsObject(session)那么

设置会话= connection.Children(0)

如果结束

对于mysession = 0到5

设置会话= connection.Children(int(mysession))

session.findById(" wnd [0]")。maximize

session.findById(" wnd [0]/tbar [0]/okcd")。text ="/img/nreiscn"

session.findById(" wnd [0]")。sendVKey 0

session.findById(" wnd [0]/usr/ctxtS_BUKRS-LOW")。text =" 2000"

session.findById(" wnd [0]/usr/chkP_USEPTN")。setFocus

session.findById(" wnd [0]/usr/chkP_USEPTN")。selected = true

session.findById(" wnd [0]/usr/chkP_GRID")。selected = true

session.findById(" wnd [0]/usr/chkP_DSPBUP")。selected = true

session.findById(" wnd [0]/usr/ctxtSO_PARTN-LOW")。text =" 1"

session.findById(" wnd [0]/usr/ctxtSO_PARTN-HIGH")。text =" 1000"

session.findById(" wnd [0]/usr/chkP_DSPBUP")。setFocus

如果mysession <5,则为session.createSession

wscript.sleep 2000

session.findById(" wnd [0]/tbar [1]/btn [8]")。按

msgbox"会话:"和mysession&vbcr和"时间:"和时间,vbInformation + vbMsgBoxForeground,"注释"

'set wshell = createobject(" Wscript.Shell")

'wshell.run""" c:\ tmp \ Script_parallel_Sessions_1.vbs"""&""&mysession

下一个

但是您也可以在此链接中寻找其他建议:脚本语言

此致

ScriptMan

一周热门 更多>