[英]SAP Error handling using SAP GUI scripting and VBA
I am trying to automate some of my SAP tasks using VBA.我正在尝试使用 VBA 自动化我的一些 SAP 任务。
In case of SAP error, I want my VBA to show error as shown in error bar (in SAP).如果出现 SAP 错误,我希望我的 VBA 显示错误,如错误栏中所示(在 SAP 中)。
If case of no error, proceed with Scripting code and end with message box "Process completed".如果没有错误,继续执行脚本代码并以消息框“处理完成”结束。
Please check my code.请检查我的代码。 It is not working.它不工作。 Any suggestion or debugging would be highly appreciated.任何建议或调试将不胜感激。
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
You could check the SAP status bar like that您可以像这样检查 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.