VBA和SAP GUI脚本错误" 619":无法通过ID找到控件

2020-09-21 10:13发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好,

我们已经运行此VBA宏一段时间,然后突然停止工作。 我尝试再次指定" session.StartTransaction"窗口,但由于它遇到"错误619:ID找不到控件",因此仍然无法正常工作。

以下是脚本:

发生错误消息时,调试将在此行停止:

 session.findById(" wnd [0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT \ 01/ssubSUBSCREEN_BODY:SAPMV45A:4400/subSUBSCREEN_TC:SAPMV45A:4900/subSUBSCREEN_BUTTONS:SAPMV45A:4050/btnBT_MKAL 。
 
设置SapGuiAuto = GetObject(" SAPGUI")
 设置应用程序= SapGuiAuto.GetScriptingEngine
 设置连接= App.Children(0)
 设置会话= Connection.Children(0)

 lr = Cells(Rows.Count," A")。End(xlUp).Row
 对于i = 2 To lr

 session.findById(" wnd [0]")。maximize
 session.startTransaction"/img/nVA02"
 session.findById(" wnd [0]/usr/ctxtVBAK-VBELN")。Text =单元格(i,1)
 session.findById(" wnd [0]")。sendVKey 0
 session.findById(" wnd [0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT \ 01/ssubSUBSCREEN_BODY:SAPMV45A:4400/subSUBSCREEN_TC:SAPMV45A:4900/subSUBSCREEN_BUTTONS:SAPMV45A:4050/btnBT_MKAL")。
 session.findById(" wnd [0]/mbar/menu [1]/menu [1]/menu [0]")。选择session.findById(" wnd [1]/usr/cmbRV45A-S_ABGRU")。Key =  " 11"
 session.findById(" wnd [1]/tbar [0]/btn [7]")。按

 如果session.ActiveWindow.Name =" wnd [2]",则
 session.findById(" wnd [2]/tbar [0]/btn [0]")。按
 万一

 session.findById(" wnd [0]/tbar [0]/btn [11]")。按
 单元格(i,2)= session.findById(" wnd [0]/sbar")。Text
 接下来我

 结束

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好,

我们已经运行此VBA宏一段时间,然后突然停止工作。 我尝试再次指定" session.StartTransaction"窗口,但由于它遇到"错误619:ID找不到控件",因此仍然无法正常工作。

以下是脚本:

发生错误消息时,调试将在此行停止:

 session.findById(" wnd [0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT \ 01/ssubSUBSCREEN_BODY:SAPMV45A:4400/subSUBSCREEN_TC:SAPMV45A:4900/subSUBSCREEN_BUTTONS:SAPMV45A:4050/btnBT_MKAL 。
 
设置SapGuiAuto = GetObject(" SAPGUI")
 设置应用程序= SapGuiAuto.GetScriptingEngine
 设置连接= App.Children(0)
 设置会话= Connection.Children(0)

 lr = Cells(Rows.Count," A")。End(xlUp).Row
 对于i = 2 To lr

 session.findById(" wnd [0]")。maximize
 session.startTransaction"/img/nVA02"
 session.findById(" wnd [0]/usr/ctxtVBAK-VBELN")。Text =单元格(i,1)
 session.findById(" wnd [0]")。sendVKey 0
 session.findById(" wnd [0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT \ 01/ssubSUBSCREEN_BODY:SAPMV45A:4400/subSUBSCREEN_TC:SAPMV45A:4900/subSUBSCREEN_BUTTONS:SAPMV45A:4050/btnBT_MKAL")。
 session.findById(" wnd [0]/mbar/menu [1]/menu [1]/menu [0]")。选择session.findById(" wnd [1]/usr/cmbRV45A-S_ABGRU")。Key =  " 11"
 session.findById(" wnd [1]/tbar [0]/btn [7]")。按

 如果session.ActiveWindow.Name =" wnd [2]",则
 session.findById(" wnd [2]/tbar [0]/btn [0]")。按
 万一

 session.findById(" wnd [0]/tbar [0]/btn [11]")。按
 单元格(i,2)= session.findById(" wnd [0]/sbar")。Text
 接下来我

 结束
付费偷看设置
发送
4条回答
shere_lin
1楼 · 2020-09-21 10:59.采纳回答

朱利安你好,

我无权访问事务VA02。 但是,我怀疑必须使用SAP GUI脚本记录器重新记录按下开关的情况。 大概在这一点上已经有所改变。

此致

ScriptMan

浮生未央
2楼-- · 2020-09-21 10:50

朱利安你好,

我只记录以下命令并替换它:

 session.findById(" wnd [0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT \ 01/ssubSUBSCREEN_BODY:SAPMV45A:4400/subSUBSCREEN_TC:SAPMV45A:4900/subSUBSCREEN_BUTTONS:SAPMV45A:4050/btnBT_MKAL 。
  
   

此致

ScriptMan

木偶小白
3楼-- · 2020-09-21 10:39

脚本人谢谢 期待你的答复!

我确实怀疑自从第一次记录宏以来,情况有所改变。 SAP路径的代码是否可能随更新而更改? 另外,如果我在SAP上重新记录交易,则应该只替换从session开始的代码。对吗?

再次感谢!

宇峰
4楼-- · 2020-09-21 11:03

谢谢! 可行!

一周热门 更多>