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