Visual Basic和SAP脚本GUI

2020-09-06 05:55发布

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

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


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

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

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

谢谢,卢克

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

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


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

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

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

谢谢,卢克

付费偷看设置
发送
4条回答
Haoba3210
1楼 · 2020-09-06 06:12.采纳回答

您好。

只有通过并行运行单独的Excel实例,才能运行由EXCEL VBA编码并行控制的所有会话。

一个Excel模板不能控制多个SAP会话。/p>

一个由多个模板使用的Excel实例不能控制一个以上的OLE-Connection到SAP会话。

每个Excel实例可以处理一个OLE-Connection到SAP会话。

p>

只需打开一个新的Excel实例并通过打开对话框从该实例中加载模板即可。

最诚挚的问候,

Holger

葫芦娃快救爷爷
2楼-- · 2020-09-06 06:19

您好。

您应该启动自己的线程。 请在此也包含错误消息。 谢谢。

最诚挚的问候

Holger

d56caomao
3楼-- · 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

jovirus
4楼-- · 2020-09-06 06:17

hi

我怎样才能将sap注释放在excel上,请帮助我紧急,我的电话是+919790971275

一周热门 更多>