点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
你好!
问题是,我为SAP使用了多个用户,每个用户都可以访问不同的T代码。 因此,我需要vba代码来检测特定用户是否有打开的会话,如果没有为此打开新的会话。
到目前为止,这是我能写的。 此代码将检测是否有打开的SAP会话,否则将打开一个新的SAP会话。 我所缺少的是检测用户(例如GEN1)是否有打开的会话并在该窗口上工作。
设置SapGuiAuto = GetObject(" SAPGUI")
设置SAPApp = SapGuiAuto.GetScriptingEngine
如果SAPApp.Connections.Count()= 0则
调用Shell(" C:\ Program Files(x86)\ SAP \ FrontEnd \ SAPgui \ saplogon.exe",vbNormalFocus)
waitTill = Now()+ TimeValue(" 00:00:05")
While Now() DoEvents 温特 设置SapGuiAuto = GetObject(" SAPGUI") 设置SAPApp = SapGuiAuto.GetScriptingEngine 设置连接= SAPApp.openconnection(" PRD") 设置会话= Connection.Children(0) session.findById(" wnd [0]/usr/txtRSYST-MANDT")。Text =" Mandant" session.findById(" wnd [0]/usr/txtRSYST-BNAME")。Text =" User" session.findById(" wnd [0]/usr/pwdRSYST-BCODE")。Text =" PW" session.findById(" wnd [0]/usr/txtRSYST-LANGU")。Text =" EN" session.findById(" wnd [0]")。sendVKey 0 PS:所有用户都在同一SAP连接中工作= PRD
朱利安你好,
欢迎使用SAP社区。 p>
下面是一个如何检测与SID和用户进行会话的示例:
函数FindSession使用给定的SID和用户名传递会话。
让我们知道您的结果。
干杯
斯特凡
你好朱利安,
您的问题:
最诚挚的问候
Stefan
您好Stefan,
非常感谢您的帮助! 这真的是帮助和强大的代码!
我还有2个问题会弹出来进行分析。
首先,为什么要使用功能而不是另一个Sub? 我的意思是,使用函数有什么好处?
另一方面,我可能需要多次从SAP转到Excel并形成您的代码,我的想法是每次需要返回SAP时都应该运行它。 那么,有没有一种方法可以将要使用的SAP窗口数保存在变量中,然后使用该变量指定要使用的传送时间?
提前谢谢!
此致
Jules
你好朱利安,
非常感谢您。
最好的问候
Stefan
出色的代码Stefan! 非常有用和强大! ;)
一周热门 更多>