点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我有一个VBA脚本,该脚本登录到SAP,从Excel工作表中输入一些数据,提取一些结果并将其复制回Excel。 该脚本在我的机器上可以正常运行,但是在其他机器上却不能正常运行,我发现这是因为在每台机器上,系统连接参数中指定的"描述"都不相同(不知道为什么)。 为了解决这个问题,我想知道是否可以改用System ID字段,因为这里的所有计算机上都一样:
代码的相关部分在这里:
如果不是IsObject(SAPguiApp),则
出错时恢复下一个
设置SAPguiAuto = GetObject(" SAPGUI")
如果Err.Number <> 0则
出错时转到0
设置WshShell = CreateObject(" WScript.Shell")
设置oExec = WshShell.Exec(" C:\ Program Files(x86)\ SAP \ FrontEnd \ SAPgui \ saplogon.exe")
不是WshShell.AppActivate(" SAP Logon 750")
睡眠1
循环
设置SAPguiAuto = GetObject(" SAPGUI")
其他
出错时转到0
结束If
设置SAPguiApp = SAPguiAuto.GetScriptingEngine
结束,如果
如果不是IsObject(Connection),则
设置连接= SAPguiApp.OpenConnection(" 此处为字符串",为True)
如果If
If不是IsObject(session),则结束。
设置会话= Connection.Children(0)
如果,则
如果session.Children.Count> 1,则
session.findById(" wnd [1]/usr/radMULTI_LOGON_OPT2")。选择
session.findById(" wnd [1]/usr/radMULTI_LOGON_OPT2") .SetFocus
session.findById(" wnd [1]/tbar [0]/btn [0]")。按
如果结束
我还包括了允许多个会话的部分,因为我花了很长时间才弄清楚今天该怎么做,这可能对某人有所帮助。
马克你好,
我的建议是使用替代方法。 尝试使用IP地址和系统编号,而不是系统说明,例如 像这样IP地址和系统号始终相同。 要获取系统编号,请使用TAC SE37调用FM GET_SYSTEM_NUMBER。
干杯
Stefan
顺便说一句,与您关于检测多个孩子的评论有关。
有一些方法可以将脚本附加到现有会话,但是您也可以通过这种方式测试屏幕元素。
只需将ID替换为各种情况所需的ID。
您好Stefan,
感谢您的建议,但是,我们有些限制性的政策似乎意味着我无权使用t代码SE37。 在其他地方可以找到该值吗?
再次感谢!
标记
很抱歉回复很长! 不幸的是,不,我也无法访问SM51! 我确实到处找了您提到的文件,似乎大多数的配置文件都存储在本地,但是我找不到特定的文件。 但是,我认为我找到了一个简单的解决方法; 我将其添加到vb脚本的登录部分的末尾:
...并且已经解决了这个问题,现在它只是模拟选择创建另一个会话的用户选项,默认情况下它似乎变为活动会话,因此可以正常工作。 我在这里只能想到的唯一弱点是,如果已经打开了最大数量的会话,则可能会崩溃,但是有人不太可能让这么多会话保持活动状态,因此我可以继续使用它。
一周热门 更多>