繁体   English   中英

使用 SAP GUI 脚本和 VBA 处理 SAP 错误

[英]SAP Error handling using SAP GUI scripting and VBA

我正在尝试使用 VBA 自动化我的一些 SAP 任务。

如果出现 SAP 错误,我希望我的 VBA 显示错误,如错误栏中所示(在 SAP 中)。

如果没有错误,继续执行脚本代码并以消息框“处理完成”结束。

请检查我的代码。 它不工作。 任何建议或调试将不胜感激。

col1 = Trim(CStr(objSheet.Cells(2, 1).Value))
col2 = Trim(CStr(objSheet.Cells(2, 2).Value))
col3 = Trim(CStr(objSheet.Cells(2, 3).Value))
  
'Scripting for VA03 data extraction

Session.FindById("wnd[0]").maximize

Session.FindById("wnd[0]/tbar[0]/okcd").Text = "/nxxxx"
Session.FindById("wnd[0]/tbar[0]/btn[0]").press

Session.FindById("wnd[0]/usr/ctxtVBAK-VBELN").Text = col1
Session.FindById("wnd[0]/usr/ctxtVBAK-VBELN").caretPosition = 10
Session.FindById("wnd[0]/tbar[0]/btn[0]").press

If Session.FindById("wnd[0]/sbar").Text = "SD Document" & "col1" & "is not in the database or has been archived" Then

  ' SAP GUI error processing
  objSheet.Cells(2, 3).Value = Session.FindById("wnd[0]/sbar").Text

Else

  Session.FindById("wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\01/" _
      & "ssubSUBSCREEN_BODY:SAPMV45A:4400/subSUBSCREEN_TC:SAPMV45A:4900/" _
      & "subSUBSCREEN_BUTTONS:SAPMV45A:4050/btnBT_PKON").press
  Session.FindById("wnd[0]/usr/tabsTAXI_TABSTRIP_ITEM/tabpT\03").Select
  objSheet.Cells(2, 2).Value = Session.FindById( "wnd[0]/usr/tabsTAXI_TABSTRIP_ITEM/" _
      & "tabpT\03/ssubSUBSCREEN_BODY:SAPMV45A:4452/ctxtVBAP-VSTEL").Text

  MsgBox "Process Completed"

End If

您可以像这样检查 SAP 状态栏

Function StatusBarError(Session as object) As Boolean

Dim objSapStatusBar As Object

   Set objSapStatusBar = Session.findById("wnd[0]/sbar")
   If objSapStatusBar.messagetype = "E" Then
       StatusBarError = True
   Else
       StatusBarError = False
   End If

End Function

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM