簡體   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