【问题标题】:VBscript conditional when trying to open a new SAP session?尝试打开新的 SAP 会话时 VBscript 有条件?
【发布时间】:2018-05-03 15:57:51
【问题描述】:

我有以下 vbs 代码,它会打开一个新的 SAP 会话:

Option Explicit
Dim WSHShell, SAPGUIPath, SID, InstanceNo, WinTitle, Name
Set WSHShell = WScript.CreateObject("WScript.Shell")
If IsObject(WSHShell) Then
    SAPGUIPath = "C:\Program Files (x86)\SAP\FrontEnd\SAPgui\"
    Name = """1. SAP ECC Production (PRD)"""
    SID = "PRD"
    InstanceNo = "00"
    WSHShell.Exec SAPGUIPath & "sapgui.exe " & Name & " " & _
      InstanceNo
    WinTitle = "SAP"
    While Not WSHShell.AppActivate(WinTitle)
      WScript.Sleep 250
    Wend
    Set WSHShell = Nothing
End If

执行时有两种情况:

  1. 首先,没有其他 SAP 会话正在运行,所以运行良好,这里没有问题。

  2. 其次,另一个 SAP 会话已经在运行,因此会弹出以下窗口。

我想要的是在代码中添加一个条件,如果第一种情况发生,什么都不做,如果第二种情况发生,选择标记的选项,

有人可以帮帮我吗?

【问题讨论】:

标签: vbscript sap


【解决方案1】:

在检查是否发生多次登录时参考下面的代码,然后按您想要的键(在您的情况下,应按 wnd[1]/usr/radMULTI_LOGON_OPT 2)。

'Logon
'session.findById("wnd[0]").maximize
session.findById("wnd[0]").iconify  'hide windows
session.findById("wnd[0]/usr/txtRSYST-MANDT").text = Client
session.findById("wnd[0]/usr/txtRSYST-BNAME").text = User
session.findById("wnd[0]/usr/pwdRSYST-BCODE").text = Password
session.findById("wnd[0]/usr/pwdRSYST-BCODE").setFocus
session.findById("wnd[0]/usr/pwdRSYST-BCODE").caretPosition = 10
session.findById("wnd[0]").sendVKey 0
'if multiple logon, continue this logon and end others
If session.children.count > 1 Then
    session.findById("wnd[1]/usr/radMULTI_LOGON_OPT1").select
    session.findById("wnd[1]/usr/radMULTI_LOGON_OPT1").setFocus
    session.findById("wnd[1]/tbar[0]/btn[0]").press
End If  

【讨论】:

    【解决方案2】:

    借助 SAP,您可以记录和修改您所做的一切的宏。见this link

    然后只需复制粘贴您需要的行并写下您的条件。

    希望对你有帮助。

    【讨论】:

    • 您好,欢迎来到stackoverflow,感谢您的回答,只是说比裸链接更好,您应该从源代码中摘录相关信息放在链接之前,如How to Answer 中所述,而不是需要添加签名。然后你可以edit你的答案并修复/改进它。谢谢
    猜你喜欢
    • 2020-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-01
    • 1970-01-01
    • 2020-02-26
    • 1970-01-01
    • 2011-12-31
    相关资源
    最近更新 更多