[英]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.