如何识别 SAP GUI 脚本何时未使用 VBA 输入事务

How to identify when SAP GUI Scripting doesn't enter a transaction with VBA

提问人:Pietro 提问时间:10/12/2023 最后编辑:Sandra RossiPietro 更新时间:10/16/2023 访问量:73

问:

大家怎么了,

我正在使用 VBA 编写一个程序,以获取有关 SAP GUI 的信息,但有时 SAP GUI 不会进入事务,我想确定何时发生这种情况。

'Getting the winding code
session.findById("wnd[0]").maximize
session.findById("wnd[0]/tbar[0]/okcd").Text = "/ncs15"
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/usr/ctxtRC29L-DATUV").SetFocus
session.findById("wnd[0]/usr/ctxtRC29L-DATUV").Text = ""
session.findById("wnd[0]/usr/chkRC29L-DIRKT").Selected = True
session.findById("wnd[0]/usr/ctxtRC29L-MATNR").Text = Worksheets("Barramentos").Range("C" & j)
session.findById("wnd[0]/usr/chkRC29L-DIRKT").SetFocus
session.findById("wnd[0]/tbar[1]/btn[5]").press
session.findById("wnd[0]/usr/ctxtRC29L-WERKS").Text = Worksheets("Barramentos").Range("I" & j)
session.findById("wnd[0]/usr/ctxtRC29L-WERKS").SetFocus
session.findById("wnd[0]/usr/ctxtRC29L-WERKS").caretPosition = 4
session.findById("wnd[0]/tbar[1]/btn[8]").press

在这里我想知道SAP何时可以进入交易

我试过使用 Chat GPT。

Excel VBA SAP-GUI

评论

0赞 Storax 10/14/2023
除了我的回答:你的意思是什么,我想知道SAP何时可以进入交易 - 我问是因为这句话可能意味着在开始交易之前必须满足某些条件。这是对的,还是你的英语水平把我带到了花园小径上?
0赞 Pietro 10/16/2023
是的,有时我输入一个“材料代码”来查看此材料链接的项目,但是当材料和项目之间没有“链接”时,它会返回一条错误消息,并且它不会输入事务。
0赞 Storax 10/16/2023
那就另当别论了。您在事务中,事务告诉您没有数据(简而言之),并且您收到一条错误消息,或多或少地告诉您。您可以检查状态栏中是否出现错误。
0赞 Storax 10/16/2023
我编辑了我的答案。

答:

0赞 Storax 10/14/2023 #1

您可以使用以下代码进行检查

Set SessionInfo = Session.Info
Debug.Print SessionInfo.Transaction

更新:根据 OP 的评论,这可能是需要的。

您可以在状态栏中检查消息的类型。如果是 E,则出现错误。

If session.findById("wnd[0]/sbar").MessageType= "E" Then
  ' Whatever you want to do here for instance leave
   Exit Sub

End If