VBA检测到SAP用户

2020-09-20 02:38发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好! 问题是,我为SAP...

         点击此处--->   EasySAP.com群内免费提供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

5条回答
Bunny_CDM
2020-09-20 02:44

你好朱利安,

您的问题:

  1. Sub和Function之间的区别在于Function提供了一个返回值。 使用Sub例程无法做到这一点。
  2. 当然可以。 在这种情况下,只需要确保要使用的连接或会话仍然存在。 与我的示例检测会话的方式几乎相同,您可以检测连接并以您描述的方式使用它。

最诚挚的问候
Stefan

一周热门 更多>